MFC初步----用C语言调用winapi在HDC上画图或字符
HDC是一种“可画”的设备,WIN_PAINT是windows的一种消息事件,所有窗体可见部分都是他的杰作
实验环境:win7下vs2010
- 定义hdc设备,并利用WIN_PAINT绘画
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT pt;
HDC hdc;//DC句柄,可供画的设备
RECT rect;//方框,也就是窗体的空白部分,可供放置组件和其他元素
switch (message)
{
case WM_PAINT:
hdc=BeginPaint(hwnd,&pt);
GetClientRect(hwnd,&rect);
Ellipse(hdc,0,0,200,100);
DrawText(hdc,TEXT("想带小松鼠去看顺溜和包打听他们的搏击训练"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd,&pt);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
//其他类型消息转给windows操作系统处理
}
return DefWindowProc(hwnd, message, wParam, lParam);
}- 调用API,定义窗体属性(基本每次直接调用即可)
#include<windows.h>
//窗口回调函数H是handler(句柄)的简写
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow)
{
//MessageBox(NULL,TEXT("会员注册成功"),TEXT("欢迎来到松鼠搏击!"),MB_OK);
HWND hWnd;
MSG msg;//微软用C语言做出的api
WNDCLASS wc;
//memset(&wc, 0, sizeof(WNDCLASS));
wc.style = 0;
wc.lpfnWndProc = (WNDPROC)WndProc;//当窗口接收到消息时,按照WndProc方式定义的方法处理接收到的消息
//return msg.wParam;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;//句柄的实例---当前实例----所谓句柄的实例,假设我们打开了三个记事本文件,那么每一个记事本即为一个实例,三个就是三个实例
wc.hIcon = LoadIcon(NULL,IDI_WINLOGO);//左上角图标
wc.hCursor = LoadCursor(NULL,IDC_ARROW);//光标----箭头形状,微软定义好的
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MyWndClass";//窗口名字,后续创建窗口时,根据名字来创建
//-------------------------注册窗口----------------------------------------
RegisterClass(&wc);
//-------------------------创建窗口----------------------------------------
hWnd = CreateWindow(
TEXT("MyWndClass"),//窗口类名
TEXT("李顺溜,包达廷,高超,尚誉"),//标题
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,//窗口位置之---x轴
CW_USEDEFAULT,//窗口位置之---y轴
CW_USEDEFAULT,//宽
CW_USEDEFAULT,//高
NULL,//窗口的父窗口句柄
NULL,//窗口的菜单句柄
hInstance,//窗口的句柄
NULL);
//显示和更新窗口
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
//消息循环
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);//把键盘输入处理为ASCII码
DispatchMessage(&msg);//把消息转发给窗口过程
}
//return 0;
return msg.wParam;
}输出结果:

相关推荐
拉斯厄尔高福 2020-11-04
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
wanshiyingg 2020-09-29
Mars的自语 2020-09-27
shenwenjie 2020-09-24
一个逗逗 2020-09-22
flycony 2020-09-13
zhaochen00 2020-08-20
Biao 2020-08-20
qingsongzdq 2020-08-19
penkgao 2020-08-17
cetrolchen 2020-08-14
GuoSir 2020-08-07