windows 程序设计第七章 鼠标命中测试的心得

本文介绍了Windows程序设计中关于鼠标命中测试的心得,详细讲解了如何在主窗口创建5*5个子窗口并在WM_SIZE消息中调整它们的位置。当鼠标左键点击时,响应子窗口的WM_LBUTTONDOWN,通过SetWindowLong和GetWindowLong函数改变子窗口状态,并利用SetFocus和InvalidateRect实现子窗口的焦点切换与重绘,从而达到交替显示交叉线的效果。
摘要由CSDN通过智能技术生成
//*************************************
//windows程序设计第七章
//程序中的命中测试
//*************************************




#include <Windows.h>
#define DIVISIONS 5


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);
int g_nIdFocus = 0;
TCHAR g_szChildClass[] = TEXT("MySecondExample_Child");


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[] = TEXT("MySecondExample");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;


wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;


if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("Program requires windows NT!"),szAppName,MB_ICONERROR);
return 0;
}


wndclass.lpfnWndProc = ChildWndProc;
wndclass.cbWndExtra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值