CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

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

楼主Soft_Zealot(令狐冲)2001-03-11 22:19:00 在 VC/MFC / 基础类 提问

很简单的一个问题:(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.所以我就放在那里了。  
  问题点数:20、回复次数:7Top

1 楼blueport(蓝色港口)回复于 2001-03-11 22:28:00 得分 10

你可以看我的代码!!www.feelby.net的VC专题下有下栽.  
  (是关于系统托盘的,不过原理是一样的.也是notification   message   .Top

2 楼joke100(咱们去SLEEP吧...)回复于 2001-03-11 22:34:00 得分 0

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;  
  }Top

3 楼Soft_Zealot(令狐冲)回复于 2001-03-11 22:34:00 得分 0

我进不去www.feelby.net网站,能不能简单讲解一下Top

4 楼Soft_Zealot(令狐冲)回复于 2001-03-11 22:53:00 得分 0

TO   zero100:  
  好像不行,我加入了WM_NOTIFY消息,但是调试发现程序根本不处理此消息。另外如何处理STN_CLICKED消息呢,它们之间的结构是什么?我现在总是搞不清楚。Top

5 楼Soft_Zealot(令狐冲)回复于 2001-03-11 22:57:00 得分 0

因为按照msdn的说法,应该结构是这样:  
  case   WM_NOTIFY:  
  {  
              .......  
              switch(...)  
              {  
              case   STN_CLICKED:  
              .......  
  但是我觉得这肯定不对,因为参数在这期间改变了。  
  Top

6 楼Soft_Zealot(令狐冲)回复于 2001-03-12 08:12:00 得分 0

我已经解决了问题,在形如下面的语句中可以得到预期的效果:  
  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消息在哪个地方处理?  
  哪位大虾知道吗?Top

7 楼Fesd(傻蛋)回复于 2001-03-12 10:44:00 得分 10

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  
   
      }  
  }Top

相关问题

  • 知道了很简单,不知道,难上天,200分请教,见者有份
  • 知道的就很简单,简直送分
  • 知道就简单,只有51分了!!!
  • 高分相送!!!请快快解答!!!知道的应该很简单!!
  • 很简单,你不一定知道哦
  • 应该很简单!可我不知道!
  • 可能很简单,但我不知道??
  • SQL求救(知道的很简单)
  • 100分求解:一个非常奇怪的问题,或许很简单,我就是不知道,up有分
  • 50分求解三道简单的概率问题,急。(不是很难,计算机专业应该都知道)

关键词

  • .net
  • 消息
  • 控件
  • stn
  • wparam
  • hwnd
  • lparam
  • wm
  • notify
  • msg

得分解答快速导航

  • 帖主:Soft_Zealot
  • blueport
  • Fesd

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo