windows程序在现实方式上属于图形方式,和文字方式的显示,有显著的不同。

 什么是设备句柄,如何获取

使用统一的数据结构表示某一设备,这个结构就是设备句柄。

06 Windows编程——设备句柄 和 WM_PAINT消息

源码

 1 #include<Windows.h>
 2 
 3 LRESULT CALLBACK WindProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
 4 
 5 int WinMain(HINSTANCE hInst, HINSTANCE tmp, LPSTR szCmd, int nShow)
 6 {
 7     WNDCLASS WndClass;
 8     TCHAR* ClassName = TEXT("MyClass");
 9     HWND hwnd;
10     MSG msg;
11 
12     WndClass.cbClsExtra = 0;
13     WndClass.cbWndExtra = 0;
14     WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
15     WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
16     WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
17     WndClass.hInstance = hInst;
18     WndClass.lpfnWndProc = WindProc;
19     WndClass.lpszClassName = ClassName;
20     WndClass.lpszMenuName = NULL;
21     WndClass.style = CS_VREDRAW | CS_HREDRAW;
22 
23     if (!RegisterClass(&WndClass))
24     {
25         MessageBox(NULL, TEXT("Gegister Class Fail!!"), TEXT("error"), MB_OK);
26         return 0;
27     }
28 
29     hwnd = CreateWindow(ClassName, TEXT("Hello"), WS_OVERLAPPEDWINDOW, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
30     if (hwnd == NULL)
31     {
32         MessageBox(NULL, TEXT("Create Window Fail!!"), TEXT("error"), MB_OK);
33         return 0;
34     }
35     ShowWindow(hwnd, nShow);
36     UpdateWindow(hwnd);
37 
38     while (GetMessage(&msg,NULL,0,0))
39     {
40         TranslateMessage(&msg);
41         DispatchMessage(&msg);
42     }
43 
44     return 0;
45 }
46 
47 LRESULT CALLBACK WindProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
48 {
49     HDC hdc;
50     PAINTSTRUCT pt;
51     TCHAR* str = TEXT("hello");
52     switch (message)
53     {
54         case WM_DESTROY:
55             PostQuitMessage(0);//发送WM_QUIT消息
56             return 0;
57         case WM_PAINT:
58             hdc = BeginPaint(hwnd, &pt);
59             TextOut(hdc, 0, 0, str, _tcslen(str));
60             EndPaint(hwnd, &pt);
61             return 0;
62         default:
63             break;
64     }
65 
66     return DefWindowProc(hwnd, message, wParam, lParam);
67 }
View Code

相关文章:

  • 2022-01-15
  • 2021-10-28
  • 2022-12-23
  • 2021-05-12
  • 2021-08-09
  • 2021-05-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2021-09-15
  • 2022-12-23
相关资源
相似解决方案