消息处理:利用控件的动态派生[RunTime],为控件添加该控件未定义的消息映射
来源:互联网 发布:吃鸡a卡优化 编辑:程序博客网 时间:2024/05/26 12:58
问题:以TPageControl为例,程序中需要“鼠标左键双击”关闭某激活页[如腾讯浏览器]。
因该控件没有定义鼠标双击事件,只有自己为该控件添加消息映射。映射的消息为:
左键双击(WM_LBUTTONDBLCLK)。本文利用运行时间派生控件的方法实现,较自己
制作一个单独控件的方法来讲,这个更简单些。
// ---------单元头文件------------------------------------------------------
class TPageControlEx : public TPageControl
{ // TPageControl的公有派生类:增加了左键双击消息映射
protected:
void __fastcall OnLeftDbClick(TMessage &Msg);
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_LBUTTONDBLCLK,TMessage,OnLeftDbClick)
END_MESSAGE_MAP(TPageControl)
public: // 内联构造:父类构造
inline __fastcall TPageControlEx(TComponent* Owner):TPageControl(Owner){ };
};
// -----------------------------------------------------------------
class TForm1 : public TForm
{
__published:
void __fastcall FormCreate(TObject *Sender);
private:
public:
__fastcall TForm1(TComponent* Owner);
TPageControlEx *PageControlEx;
};
// --------单元文件---------------------------------------------------------------
void __fastcall TPageControlEx::OnLeftDbClick(TMessage &Msg) // 派生类消息处理
{
AnsiString area=Form1->PageControlEx->ActivePage->Caption;
ShowMessage("收到左键双击消息/n双击区域:"+area);
// PageControl接受消息的区域:Tab按钮矩形区,无须再判断了!
}
// --------------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
PageControlEx = new TPageControlEx(this);
PageControlEx->Parent=Form1;
PageControlEx->Align=alClient;
// -------------生成2个TabSheet实验一下------------------------
TTabSheet* newTabSheet = NULL;
newTabSheet = new TTabSheet(this);
newTabSheet->PageControl=PageControlEx;
newTabSheet->Caption="TabSheet1";
newTabSheet = new TTabSheet(this);
newTabSheet->PageControl=PageControlEx;
newTabSheet->Caption="TabSheet2";
}
// --------------------------------------------------------------------------
- 消息处理:利用控件的动态派生[RunTime],为控件添加该控件未定义的消息映射
- MFC为动态创建的控件添加消息
- 控件的动态添加与消息响应
- 动态创建控件的消息响应添加
- 动态创建控件的消息响应添加
- 动态创建控件的消息响应添加
- MFC动态创建控件的消息处理
- MFC动态创建控件的消息处理
- 动态生成控件的消息处理
- MFC动态创建控件的消息处理
- 动态生成控件的消息处理
- 控件的WM_NOTIFY消息映射
- VC中动态添加控件,并且响应控件的消息
- 为控件添加消息处理函数
- 很多控件的消息处理
- 派生控件的处理。
- 手动书写控件变量的添加,手动实现命令消息映射和通知消息映射
- 添加动态创建控件的消息的简便方法
- ClearCase使用入门--step by step(序)
- ClearCase使用入门--step by step(管理篇)
- 简单实现[BCB5]:键盘全局钩子[Hook],监视多进程键盘操作。
- BCB:TEdit控件右对齐的简单实现
- BCB5:TrayIcon控件的使用、问题及对策
- 消息处理:利用控件的动态派生[RunTime],为控件添加该控件未定义的消息映射
- 五种查询Internet连接状态[含IP]的方法
- 至PJ初学者!(初学者必看)
- 硬盘保护卡的原理分析
- 中国共享软件如何进军海外市场完全指导手册
- 在Visual C++中使用内联汇编
- 怎样使用 Visual C++ 编译出只有 1536 字节的窗口程序
- 病毒基础系列-API函数地址的获取
- PE文件添加节显示启动信息...