马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
|