描述:有文件A.CPP,B.CPP,其中A文件是窗口创建和窗口过程的主文件,文件B有一个函数fn,调用fn后向窗口发送自定义的一个WM_MYMSG消息,使用SendMessage()函数,却无法实现消息的发送,我调试发现,在A中发送同样的消息却可以实现,我是用findwindow()函数找窗口句柄的,返回不是null,说明窗口存在,有点疑惑,忘知者指点。

解决方案 »

  1.   

    调试下,看fn FindWindow找到的是不是A所创建的那个窗口
      

  2.   

    也许有重名的窗体,导致findwindow发现结果不对
      

  3.   

    B文件中
    BOOL StartServer(){
          连接数据库;
          if 连接成功 SendMessage(FindWindow(null,szTitle),WM_CONNSQLOK,0,0);
    }A文件:
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch(umsg){
          case WM_CONNSQLOK:  //这里不执行
              SendMessage(hStatusBar,SB_SETTEXT,0,(LONG)szMsg);
              break;
    }
         

    数据库连接是一定成功的的,我调试过了
      

  4.   

    switch(umsg)?发送自定义消息时一般自己写接收消息的函数,
    参考http://blog.csdn.net/mubai007/archive/2009/03/03/3951752.aspxhttp://blog.csdn.net/mubai007/archive/2009/03/03/3951752.aspx
      

  5.   

    FindWindow(null,szTitle) 值是多少?是否为空。。?
      

  6.   

    “case WM_CONNSQLOK:  //这里不执行"跟踪调试下吧,看看是否真的发出了消息,找到的窗口是否正确。另外问下WM_CONNSQLOK的值是多少,两个文件里用的是相同的定义吧?