为什么将窗口变成嵌入到另一个窗口后就收不到消息了呢?
我现在是在一个线程中用PostMessage的方式向一个窗口发送消息,当这个窗口时定层窗口的时候,窗口可以收到这个消息,但是一旦把它签入到另外一个窗口以后就收不到这些消息了,但是又可以收到父窗口用PostMessage方式发送的消息,这是怎么回事儿呢?
[解决办法]
没有代码 不好分析
一、检查句柄是否正确
二、用GetLastError 看看错误代码
[解决办法]
我贴一个子窗体给主窗体发送消息的例子
//---------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#define WM_USER_THREAD_FINISHED WM_USER+0x400
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------
// 重载Form的WndProc以处理自定义消息
void __fastcall TForm1::WndProc(TMessage &Msg)
{
if (Msg.Msg == WM_USER_THREAD_FINISHED)
{
//LPTSTR lp = (LPTSTR)Msg.LParam;
char * lp = (char *)Msg.LParam;
if (lp)
{
if (Msg.WParam == 1)
ShowMessage(AnsiString(lp));
}
}
TForm::WndProc(Msg);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TForm2 * frm =new TForm2(this);
frm->ShowModal() ;
delete frm ;
}
//---------------------------------------
HWND h2 = FindWindowEx(frmMain->scrlbxMain->Handle, NULL, NULL, TEXT("摄像头监控"));
if (h2 != NULL) {
SetWindowPos(h2, NULL, 360, 10, 0, 0, SWP_NOSIZE);
}