registerwindowmessageregisterwindowmessage
请问API函数RegisterWindowMessageA()在C++托管编程里面应该怎样用啊?能否给一个例子.万分感激.
越详细越好..万分感激.
我已经定义了constUINTWM_rasEVENT=::RegisterWindowMessageA(RASDIALEVENT);
接下来应该怎么做呢?是VC++.NET谢谢!
1.首先:项目属性->配置属性->连接器->输入->附加依赖项,直接清空!
这样::RegisterWindowMessageA、::SendMessage都可以直接用了.
2.注册constUINTWM_rasEVENT=::RegisterWindowMessageA("RASDIALEVENT");这个消息以后,可以顺利的使用
::SendMessage送这个消息,例如:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
::SendMessage((HWND)(void*)this->Handle,WM_rasEVENT,0,0 );//发送到当前窗口
}
3.最重要的就是如何接收到这个消息,这里需要重载Form的WndProc来完成,如下:
protected:
[SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] //这一句是声明访问权限的
virtual void WndProc( Message% m ) override //重载WndProc函数来接收消息
{
if( m.Msg == WM_rasEVENT)
{
MessageBox::Show(" 自动定义消息!");//接收自定义消息,并做相应处理
}
Form::WndProc( m ); //这句不能少,最后要调用默认处理过程
}
如果这个程序的过程不熟悉,那么就去看看Windows消息处理机制。
托管c++重载窗体过程的实例MSDN上有,不是在WndProc说明里面,而是在Message说明里面:
我是想把这篇文章: 在.NET中实现,现在就是 消息这部分遇到了问题..麻烦帮我看看好吗?
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29961-1.html
我宝明明最高SM炸了