代码如下:
#include <Windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
HDC hdc;
PAINTSTRUCT ps;//结构
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
SetMapMode(hdc, MM_ANISOTROPIC);
Ellipse(hdc, 0, 0, 400, 400); //大圆脸
Ellipse(hdc, 50, 50, 150, 150); //左眼Σ(っ °Д °;)っ
Ellipse(hdc, 250, 50, 350, 150); //右眼Σ(っ °Д °;)っ
Arc(hdc, 100, 200, 300, 350, 120, 275, 400, 275); //嘴巴
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProcW(hwnd, message, wparam, lparam);
}
return 0;
}
int WINAPI WinMain(_In_ HINSTANCE hThisInst, _In_opt_ HINSTANCE hPrevInst, _In_ LPSTR lpszCmdLine, _In_ INT ncmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASSEX wndclassex;
TCHAR lpszclassname[] = L"画画";
TCHAR lpszclassTitle[] = L"这是一个笑脸";
wndclassex.cbSize = sizeof(WNDCLASSEX);
wndclassex.style = 0;
wndclassex.lpfnWndProc = WndProc;
wndclassex.cbClsExtra = 0;
wndclassex.cbWndExtra = 0;
wndclassex.hInstance = hThisInst;
wndclassex.hIcon = LoadIcon(hThisInst, MAKEINTRESOURCE(IDI_APPLICATION));
wndclassex.hCursor = LoadCursorW(hThisInst, MAKEINTRESOURCE(IDC_ARROW));
wndclassex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclassex.lpszMenuName = NULL;
wndclassex.lpszClassName = lpszclassname;
wndclassex.hIconSm = LoadIcon(wndclassex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
if (!RegisterClassExW(&wndclassex))
{
MessageBeep(0);
return FALSE;
}
hwnd = CreateWindowW(lpszclassname, lpszclassTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hThisInst, NULL);
ShowWindow(hwnd, ncmdShow);
UpdateWindow(hwnd);
while (GetMessageW(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessageW(&msg);
}
return msg.wParam;
}
遇到的问题是在"CreateWindowW()"函数中看书上第三个参数可以改变创建窗口的样式,我尝试了"WS_MAXIMIZEBOX"的样式,发现结果并没有出现最大化按钮的窗口,我查了一下有的说是还需要加入"WS_VISIBLE",还有说是在"ShowWindow()"中加入"SW_Show"等,但是我运行的时候都失败了,所以说是这么改的吗?如果哪里弄错,请各位大佬指出,谢谢
你好,我是有问必答小助手。为了技术专家团更好地为您解答问题,烦请您补充下(1)问题背景详情,(2)您想解决的具体问题,(3)问题相关代码图片或者报错信息。便于技术专家团更好地理解问题,并给出解决方案。
您可以点击问题下方的【编辑】,进行补充修改问题。