VC 入门笔记创建一个窗口 VC++入门笔记:创建一个窗口 在 VC++中创建一个窗口需要做到如下 4 个操作步骤: 1、
设计一个窗口类; 2、注册窗口类; 3、创建窗口; 4、显示及更新窗口; Java 代码 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; 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 函数的帮助
文档。 Java 代码 HICON LoadIcon( HINSTANCE hInstance, // handle to application instance LPCTSTR lpIconName // icon-name string or icon resource
// identifier ); 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 的解析(背景刷的颜色) : Java 代码 HGDIOBJ GetStockObject( int fnObject // type of stock object ); HGDIOBJ GetStockObject( int fnObject // type of stock object ); 获得一个画刷的句柄,返回的是一个 HGDIOBJ(画刷物体) 。
Java 代码 wndcls.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH); wndcls.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH); 这里做了强制类型转换:(HBRUSH),因为 hbrBackground 必须还是一个 HBRUSH 类型。 RegisterClass(注册窗口类) Java 代码 ATOM RegisterClass( CONST WNDCLASS *lpWndClass // address of structure with class // data ); ATOM RegisterClass( CONST WNDCLASS *lpWndClass // address of structure with class
// data );
参数为窗口类结构体的指针。 关于 CreateWindow 函数
: Java 代码 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 ); HWND CreateWindow( LPCTSTR lpClassName, // pointer to registered class name 指针指向注册类的名字 LPCTSTR lpWindowName, //