Windows SDK编程之建立控件

第五阅读网 FiveRead.com  2004年08月30日  vckbase 冯明德
  一、概述

  控件是子窗口,它们是系统已经定义好的窗口类,因此不需要注册、也不需要写消息处理函数。

  在主窗口得到WM_CREATE消息时,建立子窗口即可。


  二、实例

//参数:窗口句柄,消息,消息参数,消息参数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 //处理感兴趣的消息
 switch (message)
 {
  case WM_CREATE:
   CreateWindow(TEXT("BUTTON"), //控件"类名称"
   TEXT("按钮(&A)"),
   WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON, 10, 10, 100, 100, hwnd, (HMENU)1000, //控件ID
((LPCREATESTRUCT) lParam)->hInstance, //实例句柄
NULL);

   return 0;
  case WM_DESTROY:
   //当用户关闭窗口,窗口销毁,程序需结束,发退出消息,以退出消息循环
   PostQuitMessage (0) ;
   return 0 ;
 }
 //其他消息交给由系统提供的缺省处理函数
 return ::DefWindowProc (hwnd, message, wParam, lParam) ;
}

  三、关于WM_CREATE消息

  WM_CREATE 的lParam参数将会传入一个建立时信息结构指针(LPCREATESTRUCT)。结构中包含了一些有用信息(窗口建立时的参数)。

typedef struct tagCREATESTRUCT {
 LPVOID lpCreateParams;
 HINSTANCE hInstance; //实例句柄
 HMENU hMenu;
 HWND hwndParent;
 int cy;
 int cx;
 int y;
 int x;
 LONG style;
 LPCTSTR lpszName;
 LPCTSTR lpszClass;
 DWORD dwExStyle;
} CREATESTRUCT, *LPCREATESTRUCT;

相关文章

    无相关信息

文章评论

发表您的评论 查看完整内容