我的程序写了好多按纽:
例如A,B两个按纽
现在我想让B也做A的事
假设A是打开com口,当我点B 时也是打开com口,
可以用PeekMessage吗!如果用PeekMessage怎么写!
我想问的是,怎么发A按纽按下的消息!
那么我有很多个按纽呢,要怎么做呀!
例如A,B两个按纽
现在我想让B也做A的事
假设A是打开com口,当我点B 时也是打开com口,
可以用PeekMessage吗!如果用PeekMessage怎么写!
我想问的是,怎么发A按纽按下的消息!
那么我有很多个按纽呢,要怎么做呀!
解决方案 »
- Visual C++ MFC 简明教程
- InternetOpenUrlA 多线程+同步,崩溃
- 谁有类似vs2008设置界面的类阿?推荐下 !!!!!!!!!!!!!!!!
- 请问如何使用虚拟打印机(如:Microsoft Office Document Image Write)把office文档转换成图片(如:jpeg,bmp等)?
- 本人想潜心学习windows编程,处于迷茫中.....
- 能否将进程句柄,作为int或者其它类型保存?
- 来看看呀!图象采集问题
- 内存泄漏的问题,提示错误在IMPLEMENT_SERIAL(CAreaSymbol,CObject,1),急急
- 各位有在Delphi中制作MDI的经验吗?请给个思路好的话再多多有分.(期待高手现身!!!!!!!!!!!!)非高手莫进!
- 软件怎样打包
- VC序列化问题
- 请问下列语句初试化有问题吗?
所以我想用发送消息的方法
其实无所什么方法了
我想要做的就是:我点一个按纽,可以做其它的一些按纽所做的事,
又不想让它们中间的一些什么MessageBox等等弹出!
好像消息已发,但我怎么处理我发的消息呢?
我写:while( PeekMessage( &msg, 0, 0 ,0 , PM_REMOVE) )
{
if(msg.message == WM_LBUTTONDOWN)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
跟它时,也收到了,但并不做另一个按纽的事
我不知道怎么写,请大家帮忙呀
真的不知道怎么做,我以前没有写过这样的东西
啊,受不 了啦
OnButton1()
{
OnButton2();
..... //打开端口
}
如果是Win32的程序,这样写:
在WndProc函数中
switch (message)
{
case WM_COMMAND:
switch((LOWORD)wParam;
{
case IDB_BUTTON1: //IDB_BUTTON1按钮的ID号
SendMessage(hButton2,BN_CLICKED,0,0); //hButton1是Button1的按钮句柄
....;//打开端口
case IDB_BUTTON2:
...
}
}
上面有个问题,就是你点击BUTTON1时,端口打开了两次,你应想办法解决。
其实你最好调用同一个函数,这样最好。
对于两个试图的菜单,你要处理cmdmsg()消息,对以按钮,应为
是两个是图,protected,我同学的一个解决办法令写一函数中加
入{.....
.....
::oncmd..();
}
声明为public在另一个button中调用就可以了
nId = ::GetDlgCtrlID(pMsg->hwnd);
int n = nId - 自定义一系列按纽的id基值
//根据n来做动作。。n就是第几个按纽。
这样还可以响应动态创建的按扭
LRESULT CALLBACK DlgProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
BOOL bCallSelf = TRUE;
switch(uMsg){
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
bCallSelf = FALSE;
//break;
case IDC_BUTTON2:
if(bCallSelf) MessageBox(hWnd, "Message Text", "Message Title", MB_OK);
// do some thing here
//............
break;
default: return 0;
}
功能:按下BUTTON1的时候,实际会做BUTTON2的事,而且不会弹出MessageBox。按下BUTTON2的时候,则正常执行BUTTON2做的事,会弹出MessageBox.
{
switch(uMsg){
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BUTTON1:
case IDC_BUTTON2:
// do some thing here
//place you code
break;
default: return 0;
}
}
}