win32 api实现简单的消息窗口示例(win32kbase.sys蓝屏)

网友投稿 328 2022-06-07


复制代码 代码如下:

#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){static TCHAR szAppName[]=TEXT("HelloWin");HWND hwnd;MSG msg;WNDCLASS wndclass; wndclass.style                =CS_HREDRAW|CS_VREDRAW;wndclass.lpfnWndProc          =WndProc;wndclass.cbClsExtra           =0;wndclass.cbWndExtra           =0;wndclass.hInstance            =hInstance;wndclass.hIcon                =LoadIcon(NULL,IDI_APPLICATION);wndclass.hCursor              =LoadCursor(NULL,IDC_ARROW);wndclass.hbrBackground        =(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.lpszMenuName         =NULL;wndclass.lpszClassName        =szAppName; if(!RegisterClass(&wndclass)){   MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);   return 0;} hwnd=CreateWindow(szAppName,TEXT("The hello program"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,      CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd); while(GetMessage(&msg,NULL,0,0)){    TranslateMessage(&msg); DispatchMessage(&msg);}return msg.wParam;} LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){HDC            hdc;PAINTSTRUCT    ps;RECT           rect; switch(message){case WM_CREATE: PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC); return 0; case WM_PAINT: hdc=BeginPaint(hwnd,&ps);  GetClientRect(hwnd,&rect);  DrawText(hdc,TEXT("HELLO WORLD!"),-1,&rect,       DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hwnd,&ps); return 0;case WM_DESTROY: PostQuitMessage(0); return 0;}return DefWindowProc(hwnd,message,wParam,lParam);}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Swagger中@ApiIgnore注解的使用详解
下一篇:PHP API接口必备之输出json格式数据示例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~