|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <windows.h>
- #include <strsafe.h>
- // Step 4: the Window Procedure
- LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
- lParam)
- {
- HDC hdc;
- size_t iTarget;
- TEXTMETRIC tm;
- static int cxChar, cyChar;
- static int cxClient, cyClient;//定议二个便量来存放屏幕的分辨率 水平与垂直方向二个值
- PAINTSTRUCT ps;
- TCHAR szBuffer[128];//定义一个缓冲区
- RECT rect;// 定义一个结构体,drawtext用到个参数,
- HPEN hPen, hOldPan;
- switch (msg)
- {
- case WM_PAINT://窗口重绘
- hdc = BeginPaint(hwnd, &ps);//注意这儿是取地址
- GetClientRect(hwnd, &rect);
- hPen = GetStockObject(WHITE_PEN);
- Ellipse(hdc, 100, 100, 200, 200);//椭圆 圆形就注意坐标就可以了
- EndPaint(hwnd, &ps);
- return 0;
- case WM_CLOSE:
- DestroyWindow(hwnd);//要销毀的窗口送出WM_DESTORY消息,
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return DefWindowProc(hwnd, msg, wParam, lParam);
- }
- return 0;
- }
- //------------------------------------------------------------------
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
- {
- //第一步:注册窗口
- WNDCLASSEX wc;
- wc.cbSize = sizeof(WNDCLASSEX);//结构体的大小
- wc.style = CS_VREDRAW|CS_HREDRAW;//类的式样(CS_*),不要跟窗口式样(WS_*)混淆了
- wc.lpfnWndProc = WndProc;//指向这个回调函数
- wc.cbClsExtra = 0;//配置给这个类的额外內存.一般为0
- wc.cbWndExtra = 0;//配置给这个类的每个窗口的额外內存.一般为0
- wc.hInstance = hInstance;//应用程序实例的句柄.(从WinMain()第一个参数传递来.)
- wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//当用戶按下Alt+Tab组合时候显示的大图标(一般为32*32)
- wc.hCursor = LoadCursor(NULL, IDC_ARROW); //在我们的窗口上显示的光标
- wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);//设置我们窗口背景顏色的背景刷子.
- wc.lpszMenuName = NULL;//这个类的窗口所用的菜单资源的名字
- wc.lpszClassName = TEXT("g_szClassName");//类的名字-----
- wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);//在任务栏和窗口的左上角显示的小图标(一般为16*16)
- RegisterClassEx(&wc);
- // 第二步,建立窗口
- HWND hwnd;
- hwnd = CreateWindowEx( //是扩展的窗口式样
- WS_EX_CLIENTEDGE,//是扩展的窗口式样
- TEXT("g_szClassName"),//类的名字-----刚刚注册的类
- TEXT("我的第一个窗口"),//我们窗口的名字或是标题,用来显示在我们窗口的外观或是标题栏上
- WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,//是一个窗口式样参数,第二个与第三个是水平垂直滚动条
- 0,//CW_USEDEFAULT 来让系统自己选择在屏幕的哪个地方来放置窗口.
- 0,//CW_USEDEFAULT,
- 500,
- 300,
- NULL,
- NULL,
- hInstance,
- NULL);
- ShowWindow(hwnd, nCmdShow);
- UpdateWindow(hwnd);
- MSG Msg; //定议消息结构
- while (GetMessage(&Msg, NULL, 0, 0) > 0)
- {
- TranslateMessage(&Msg);
- DispatchMessage(&Msg);
- }
- return Msg.wParam;
- }
复制代码 |
|