VC++入门笔记:创建一个窗口

VC++入门笔记:创建一个窗口

在VC++中创建一个窗口需要做到如下4个操作步骤:
1、设计一个窗口类;
2、注册窗口类;
3、创建窗口;
4、显示及更新窗口;
typedef struct _WNDCLASS { 
    UINT    style; //定义类的类型
    WNDPROC lpfnWndProc; //用来接收一个函数指针,回调函数,用来处理该窗口类型消息的函数,这里用指针来索引指向
    int     cbClsExtra; //类的附加内存空间,通常为0
    int     cbWndExtra; //窗口的附加内存空间,通常为0
    HANDLE  hInstance; 
    HICON   hIcon; 
    HCURSOR hCursor; 
    HBRUSH  hbrBackground; 
    LPCTSTR lpszMenuName;//常量字符串类型,设定菜单的名字
    LPCTSTR lpszClassName; //设定类的名字
} WNDCLASS; 


一个字节 8位;

关于LoadIcon函数:
我们在MSDN的帮助文件中,查阅LoadIcon函数的帮助文档。
HICON LoadIcon(
  HINSTANCE hInstance, // handle to application instance
  LPCTSTR lpIconName   // icon-name string or icon resource 
                       // identifier
);

HINSTANCE hInstance,当一个标准的图标被加载的时候,这个必须为空。
第二个值可以用下面标准的值:
Value Description
IDI_APPLICATION   Default application icon.
IDI_ASTERISK      Same as IDI_INFORMATION.
IDI_ERROR         Hand-shaped icon.
IDI_EXCLAMATION   Same as IDI_WARNING.
IDI_HAND          Same as IDI_ERROR. 
IDI_INFORMATION   Asterisk icon.
IDI_QUESTION      Question mark icon.
IDI_WARNING       Exclamation point icon.
IDI_WINLOGO       Windows logo icon.

关于HBRUSH  hbrBackground的解析(背景刷的颜色):
HGDIOBJ GetStockObject(
  int fnObject   // type of stock object
);

获得一个画刷的句柄,返回的是一个HGDIOBJ(画刷物体)。

wndcls.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);

这里做了强制类型转换:(HBRUSH),因为hbrBackground必须还是一个HBRUSH类型。

RegisterClass(注册窗口类)
ATOM RegisterClass(
  CONST WNDCLASS *lpWndClass   // address of structure with class 
                               // data
);


参数为窗口类结构体的指针。

关于CreateWindow函数:
HWND CreateWindow(
  LPCTSTR lpClassName,  // pointer to registered class name指针指向注册类的名字
  LPCTSTR lpWindowName, // pointer to window name
  DWORD dwStyle,        // window style
  int x,                // horizontal position of window
  int y,                // vertical position of window
  int nWidth,           // window width
  int nHeight,          // window height
  HWND hWndParent,      // handle to parent or owner window
  HMENU hMenu,          // handle to menu or child-window identifier
  HANDLE hInstance,     // handle to application instance
  LPVOID lpParam        // pointer to window-creation data
);

获得是一个窗口句柄。





你可能感兴趣的:(java,windows,vc++)