win32窗口程序的过程
2020-12-13 05:59
标签:des style blog color 使用 os io 文件 复习一下win32窗口程序 设计一个窗口类; 设计窗口类: 窗口类的类型: 在我们的程序中经常要用到一类变量,这个变量里的每一位(bit)都对应某一种特性。当该变量的某位为1时,表示有该位对应的那种特性,当该位为0时,即没有该位所对应的特性。当变量中的某几位同时为1时,就表示同时具有几种特性的组合。一个变量中的哪一位代表哪种意义,不容易记忆,所以我们经常根据特征的英文拼写的大写去定义一些宏,该宏所对应的数值中仅有与该特征相对应的那一位(bit)为1,其余的bit都为0。我们使用goto definition就能发现CS_VREDRAW=0x0001,CS_HREDRAW=0x0002,CS_DBLCLKS =0x0008,CS_NOCLOSE=0x0200。他们的共同点就是只有一位为1,其余位都为0。如果我们希望某一变量的数值既有CS_VREDRAW特性,又有CS_HREDRAW特性,我们只需使用二进制OR(|)操作符将他们进行或运算相组合,如style=CS_VREDRAW | CS_HREDRAW | CS_NOCLOSE。如果我们希望在某一变量原有的几个特征上去掉其中一个特征,用取反(~)之后再进行与(&)运算,就能够实现,如在刚才的style的基础上去掉CS_NOCLOSE特征,可以用style & ~CS_NOCLOSE实现。 窗口过程函数: 第二个成员变量lpfnWndProc指定了这一类型窗口的过程函数,也称回调函数。回调函数的原理是这样的,当应用程序收到给某一窗口的消息时(还记得前面讲过的消息通常与窗口相关的吗?),就应该调用某一函数来处理这条消息。这一调用过程不用应用程序自己来实施,而由操作系统来完成,但是,回调函数本身的代码必须由应用程序自己完成。对于一条消息,操作系统到底调用应用程序中的哪个函数(回调函数)来处理呢?操作系统调用的就是接受消息的窗口所属的类型中的lpfnWndProc成员指定的函数。每一种不同类型的窗口都有自己专用的回调函数,该函数就是通过lpfnWndProc成员指定的。 注册窗口类: RegisterClass(&wndclass); 创建窗口: 显示及更新窗口: 消息循环(获取消息): 窗口过程函数(回调函数): win32窗口程序的过程,搜素材,soscw.com win32窗口程序的过程 标签:des style blog color 使用 os io 文件 原文地址:http://www.cnblogs.com/tianya2543/p/3892995.html
注册窗口类;
创建窗口;
显示及更新窗口。
消息循环,去获取消息;
窗口过程函数的消息响应。typedef struct _WNDCLASS
{
UINT style; //窗口类的类型
WNDPROC lpfnWndProc; //窗口过程函数(回调函数)
int cbClsExtra; //为该类设定额外内存空间
int cbWndExtra; //为该窗口设定额外内存空间
HANDLE hInstance; //当前应用程序的实例号
ICON hIcon; //图标,一般用LoadICON函数赋值
HCURSOR hCursor; //光标,一般用LoadCursor函数赋值
HBRUSH hbrBackground; //窗口背景GetStockObject()
LPCTSTR lpszMenuName; //设置菜单名(常量字符串)
LPCTSTR lpszClassName; // 设计一个窗口类的名字
} WNDCLASS;
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
);
The ShowWindow function sets the specified window‘s show state.
BOOL ShowWindow(
HWND hWnd, // handle to window
int nCmdShow // show state of window );
BOOL UpdateWindow(
HWND hWnd // handle of window );
BOOL GetMessage(
LPMSG lpMsg, // address of structure with message
HWND hWnd, // handle of window
UINT wMsgFilterMin, // first message
UINT wMsgFilterMax // last message );
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter)
{
switch(uMsg)
{
case WM_LBUTTONDOWN:
break;
case WM_CLOSE:
break; default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
//孙鑫视频案例代码参考
//运行环境Visual C++ :新建 Win32 Application(注意类型) 工程 ,再新建WinMain.cpp C++源文件)
//win32窗口程序
#include
上一篇:c语言的一些小细节