今天遇到了一些奇怪的问题,就是那两个函数为什么在有时是一个参数,而有时又是三个参数啊!!
MessageBox(hwnd,"套接字创建失败!","警告",MB_OK);
MessageBox("SDGJOEG");
最郁闷的是下面这个函数
 SetDlgItemText(IDC_EDIT_SEND,"");这又是msdn中的定义,不是三个参数吗??
BOOL SetDlgItemText(
  HWND hDlg,         // handle to dialog box
  int nIDDlgItem,    // control identifier
  LPCTSTR lpString   // text to set
);还有最重要的是,在调用这些函数是,可以在任何地方吗?
我怎么感觉只有在“控件”的响应函数里才能正确调用。
其他地方,我以调用,就报错,illegal call of non-static member function
(我当时想用edit控件显示文件传送进程,x%,不是用进度条啊,就是控件上输出1%到100%
数字嘛)忘高手指明点啊!!

解决方案 »

  1.   

    不要迷惑,你需要分清楚是MFC的,还是Platform SDK的接口,两个接口是不一样的,如下://MFC类库
    CWnd::MessageBox
    int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );CWnd::SetDlgItemText
    void SetDlgItemText( int nID, LPCTSTR lpszString );//Platform SDK
    int MessageBox(
      HWND hWnd,          // handle to owner window
      LPCTSTR lpText,     // text in message box
      LPCTSTR lpCaption,  // message box title
      UINT uType          // message box style
    );
    BOOL SetDlgItemText(
      HWND hDlg,         // handle to dialog box
      int nIDDlgItem,    // control identifier
      LPCTSTR lpString   // text to set
    );
      

  2.   

    MessageBox(hwnd,"套接字创建失败!","警告",MB_OK); 
    MessageBox("SDGJOEG"); 
    最郁闷的是下面这个函数 
    SetDlgItemText(IDC_EDIT_SEND,""); 
    已经封装在cwnd类里面去了,有默认函数,所以可以传个数不同的参数。BOOL SetDlgItemText( 
      HWND hDlg,        // handle to dialog box 
      int nIDDlgItem,    // control identifier 
      LPCTSTR lpString  // text to set 
    ); 
    这个事api,全局函数
      

  3.   

    MessageBox(hwnd,"套接字创建失败!","警告",MB_OK); 
    MessageBox("SDGJOEG"); 
    最郁闷的是下面这个函数 
    SetDlgItemText(IDC_EDIT_SEND,""); 
    已经封装在cwnd类里面去了,有默认函数,所以可以传个数不同的参数。BOOL SetDlgItemText( 
      HWND hDlg,        // handle to dialog box 
      int nIDDlgItem,    // control identifier 
      LPCTSTR lpString  // text to set 
    ); 
    这个事api,全局函数