很简单,不知道谁想要分???

Soft_Zealot 2001-03-11 10:19:00
很简单的一个问题:(SDK编程)我希望自己创建的Static控件能够接受到鼠标点击的消息以便移动控件,我已经把Static控件属性设为SS_NOTIFY,并且知道在STN_CLICKED消息中处理,但是我现在不知道把代码放在哪里才能接受到消息,哪位大虾伸伸手,帮帮忙,穷人送上20分祝你天天快乐。

我曾经把STN_CLICKED放在WM_COMMAND消息下面,觉得不对(其实就是不对),但是MSDN上说 The parent window of the control receives this notification message through the WM_COMMAND message.所以我就放在那里了。
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fesd 2001-03-12
  • 打赏
  • 举报
回复
LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

...
switch(msg)
{
case WM_COMMAND :
OnCommand(hwnd,(int)LOWORD(wParam),(HWND)lParam,(UINT)HIWORD(wParam))
}
}

LRESULT OnCommand(HWND hwnd,int nID, HWND hWndControl, UINT codeNotify)
{
if((nID == YOUR_STATIC_ID)&&(codeNotify == STN_CLICKED))
{//Do your Work here

}
}
Soft_Zealot 2001-03-12
  • 打赏
  • 举报
回复
我已经解决了问题,在形如下面的语句中可以得到预期的效果:
LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

...
switch(msg)
{
case WM_COMMAND :
{
...
return 0;

default: //这里,因为有若干个Static,id从0到n,所以放在这里可以少写很多case id
......
}
break;

default:
return DefWindowProc(hwnd, msg, wParam, lParam);
break;
}
return 0;
}

不过我仍然没有找到STN_CLICKED消息在哪个地方处理?
哪位大虾知道吗?
Soft_Zealot 2001-03-11
  • 打赏
  • 举报
回复
因为按照msdn的说法,应该结构是这样:
case WM_NOTIFY:
{
.......
switch(...)
{
case STN_CLICKED:
.......
但是我觉得这肯定不对,因为参数在这期间改变了。
Soft_Zealot 2001-03-11
  • 打赏
  • 举报
回复
TO zero100:
好像不行,我加入了WM_NOTIFY消息,但是调试发现程序根本不处理此消息。另外如何处理STN_CLICKED消息呢,它们之间的结构是什么?我现在总是搞不清楚。
joke100 2001-03-11
  • 打赏
  • 举报
回复
WM_NOTIFY嘛。。。。。。。。。。。。。。
WM_NOTIFY与WM_COMMAND是不同的喔

LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

...
switch(msg)
{
case WM_COMMAND :
...
break;
case WM_NOTIFY : // 在这儿,老兄
...
break;

default:
return DefWindowProc(hwnd, msg, wParam, lParam);
break;
}
return 0;
}
Soft_Zealot 2001-03-11
  • 打赏
  • 举报
回复
我进不去www.feelby.net网站,能不能简单讲解一下
blueport 2001-03-11
  • 打赏
  • 举报
回复
你可以看我的代码!!www.feelby.net的VC专题下有下栽.
(是关于系统托盘的,不过原理是一样的.也是notification message .

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧