谁能帮我解决这个问题(关于HTCLOSE) (300分)

E

emildy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想重绘窗口标题栏,也包括了系统按钮,
其中,我想改变一下"X"按钮(关闭窗口的按钮)的位置:
case WM_NCHITTEST:
{
int x = LOWORD(lParam);
int y = HIWORD(lParam);
if(...){ //x,y在一个RECT内
return (LRESULT)HTCLOSE;
}
}
以上还没有什么问题,
调试中,当我按下我画的"X"按钮时候,也没有问题,
但是麻烦的是,当松开鼠标的时候,却没有关闭窗口,也就是说只做了一个没有用的"X"按钮,
我查了好多资料,也看了些别人的代码,别人的实现方法有两种:
第一种直接在鼠标按下时就发送关闭消息,
case WM_NCLBUTTONDOWN:
{
if(wParam == HTCLOSE) SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);
}
但是,这种做法太粗糙了点...
另一种好像是在WM_NCLBUTTONDOWN中加入了钩子,来判断是否松开鼠标,
我看别人实现的好复杂,都看晕了...
不知道这里的高手还有别的什么方法呢?
 
我不知道,帮你提前。关注此题!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
936
DelphiTeacher的专栏
D
I
回复
0
查看
478
import
I
顶部