|
发表于 2015-3-13 21:50:37
|
显示全部楼层
- #include <windows.h>
- #include "strsafe.h"
- #define LINEHEIGHT 15
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//先要声明一个WndProc回调函数
- //LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);也可以用这个来声明回调函数
- //相当于C语言中的int main()
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)//HINSTANCE实例句柄
- {
- HWND hwnd;//窗口句柄
- MSG msg;//消息
- WNDCLASS wndclass;//窗口类
- //1.设计一个窗口类
- wndclass.style = CS_HREDRAW | CS_VREDRAW;//这个可以让屏幕自动显示在中间,即使缩小或放大屏幕。 //wndclass.style = 0;//为默认窗口
- wndclass.lpfnWndProc = WndProc;
- wndclass.cbClsExtra = 0;
- wndclass.cbWndExtra = 0;
- wndclass.hInstance = hInstance;
- wndclass.hIcon = LoadIcon(NULL, IDI_WINLOGO);
- wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
- wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
- wndclass.lpszMenuName = NULL;
- wndclass.lpszClassName = TEXT("MyWndClass");//*窗口类的名字
- //2.注册一个窗口类
- RegisterClass(&wndclass);
- //3.创建窗口
- hwnd = CreateWindow(TEXT("MyWndClass"), TEXT("Hello SDK Application"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
- //4.显示和更新窗口
- ShowWindow(hwnd, nShowCmd);
- UpdateWindow(hwnd);
- //5.消息循环
- while (GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);//转发到窗口过程
- }
- return msg.wParam;
- }
- //窗口过程回调函数
- LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)//还有另一种写法:LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);
- {
- PAINTSTRUCT ps;
- HDC hdc;
- //RECT rect;
- int i;
- TCHAR szBuffer[1024];
- //对各种消息进行处理
- switch (message)
- {
- case WM_SIZE:
- //重制 paint
- return 0;
- case WM_LBUTTONDOWN:
- //PostQuitMessage(0);
- return 0;
- case WM_PAINT://绘制消息
- hdc = BeginPaint(hwnd, &ps);
- for (i = 0; i<10; ++i)
- {
- StringCchPrintf(szBuffer, 1024, TEXT("Hello %d"), i);
- TextOut(hdc, 0, i*LINEHEIGHT, szBuffer, lstrlen(szBuffer));
- }
- EndPaint(hwnd, &ps);
- break;//可以写break,也可以写return 0;
- case WM_DESTROY://销毁窗口,即关闭窗口(消息)
- PostQuitMessage(0);
- return 0;
- }
- return DefWindowProc(hwnd, message, wParam, lParam);
- }
复制代码
原因是_sntprintf未定义 |
|