LRESULT CALLBACK ChildWndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
SetWindowLong(hwnd,0,0);
return 0;
case WM_LBUTTONDOWN:
SetWindowLong(hwnd,0,1^GetWindowLong(hwnd,0));
InvalidateRect(hwnd,NULL,false);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
Rectangle(hdc,0,0,rect.right,rect.bottom);
if(GetWindowLong(hwnd,0))
{
MoveToEx(hdc,0,0,NULL);
LineTo(hdc,rect.right,rect.bottom);
MoveToEx(hdc,0,rect.bottom,NULL);
LineTo(hdc,rect.bottom,0);
}
EndPaint(hwnd,&ps);
return 0;
}
return DefWindowProc(hwnd,message,wparam,lparam);
}GetWindowLong(hwnd,0)//这句话是什么意思?这里的0可以变码?
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
SetWindowLong(hwnd,0,0);
return 0;
case WM_LBUTTONDOWN:
SetWindowLong(hwnd,0,1^GetWindowLong(hwnd,0));
InvalidateRect(hwnd,NULL,false);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
Rectangle(hdc,0,0,rect.right,rect.bottom);
if(GetWindowLong(hwnd,0))
{
MoveToEx(hdc,0,0,NULL);
LineTo(hdc,rect.right,rect.bottom);
MoveToEx(hdc,0,rect.bottom,NULL);
LineTo(hdc,rect.bottom,0);
}
EndPaint(hwnd,&ps);
return 0;
}
return DefWindowProc(hwnd,message,wparam,lparam);
}GetWindowLong(hwnd,0)//这句话是什么意思?这里的0可以变码?
解决方案 »
- VC嵌汇编,关于 OFFSET 操作符的问题
- 请问:如何填充圆?
- afxcallwndproc afxwndproc 这样的函数 msdn中怎么没有呢?
- 大家不要讽刺我,我真的不太会,帮忙…………………………………………………………………………………………
- 图像颠倒的问题
- 想要交流的人
- 一个关于内存泄露的问题(在线等待)
- 100分求救:有谁用过MSCOMM控件,我有一个相关的问题,急!
- 如何取得屏幕上任一点的RGB值?
- 用c语言做的lib库 有没有main函数啊?用c做lib库 是手动做,还是在vs里面自动生成好?如何做比较好呢
- VS中如何添加控件变量~?
- 能不能在对话框BUTTON中添加一个OnLButtonDown?
GWL_EXSTYLE;获得扩展窗口风格。
GWL_STYLE:获得窗口风格。
GWL_WNDPROC:获得窗口过程的地址,或代表窗口过程的地址的句柄。必须使用CallWindowProc函数调用窗口过程。
GWL_HINSTANCE:获得应用事例的句柄。
GWL_HWNDPAAENT:如果父窗口存在,获得父窗口句柄。
GWL_ID:获得窗口标识。
GWL_USERDATA:获得与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。
在hWnd参数标识了一个对话框时也可用下列值:
DWL_DLGPROC:获得对话框过程的地址,或一个代表对话框过程的地址的句柄。必须使用函数CallWindowProc来调用对话框过程。
DWL_MSGRESULT:获得在对话框过程中一个消息处理的返回值。
DWL_USER:获得应用程序私有的额外信息,例如一个句柄或指针。
* Window field offsets for GetWindowLong()
*/
#define GWL_WNDPROC (-4)
#define GWL_HINSTANCE (-6)
#define GWL_HWNDPARENT (-8)
#define GWL_STYLE (-16)
#define GWL_EXSTYLE (-20)
#define GWL_USERDATA (-21)
#define GWL_ID (-12)