zoukankan      html  css  js  c++  java
  • VC编程小技巧

    1.rich edit控件使用时需要初始化

    用vc新建dialog.添加rich edit 后编译可以通过,运行后自动退出,原因即是没有初始化的后果。

    解决方法:

    AfxInitRichEdit();    
    CWinApp::InitInstance();

    必须在CWinApp::InitInstance();
     之前。



    2.socket编程对socket需要初始化

    在你重载的CWinApp::InitInstance函数中调用这个函数以初始化WindowsSockets。
    在调用 AfxSocketInit() 之前,需要包含 afxsock.h 头文件。
    例子:
    if ( !AfxSocketInit() )
    {
    AfxMessageBox( _T("Failed to Initialize Sockets"), MB_OK | MB_ICONSTOP);
    return FALSE;
    }

    解释:WASAtarup()是应用程序调用的windows sockets dll的第一个函数,在调用任何winsock api之前,必须调用wsastartup()进行初始化,最后调用WSACleanup()做清理工作.
          MFC中的函数AfxSocketInit()包装了函数WSAStartup(),在支持WinSock的应用程序的初始化函数IninInstance()中调用AfxSocketInit()进行初始化,程序则不必调用WSACleanUp().


    3.获得edit控件的内容或者赋值

    为控件关联一个control类型的变量,例如CEdit m_edit,
    用m_edit.SetWindowText("");就可以清空内容。用m_edit.GetWindowText(str);就可以得到内容。

    如果关联的是CString变量可以把那个变量赋值为"",然后UpdateData()。


    4.获得窗口句柄

    HWND hWnd = ::FindWindowEx(this->GetParent()->m_hWnd, NULL, NULL, WINDOW_TEXT);
    其中,m_hWnd为名为WINDOW_TEXT的子窗口的父窗口的句柄,WINDOW_TEXT为子窗口的标题,得到的hWnd为子窗口的句柄,this指代子窗口。
    hWnd1=::FindWindowEx(FromHandle(hWnd)->GetDlgItem(IDC_TAB1)->m_hWnd, NULL, NULL, WINDOW_TEXT);

    第二句中hWnd为IDC_TAB1的父窗口,m_hWnd即IDC_TAB1


    5.突破静态成员函数不能非静态成员的限制

    解决此问题的一种途径是可以在调用类静态成员函数(线程函数)时将this指针作为参数传入,并在改线程函数中用强制类型转换将this转换成指向该类的指针,通过该指针访问非静态成员。
    例如:
    class A
    {
    public:
    static void f(A a);


    private:
    int x;
    };
    void A::f(A a)
    {
    cout<<a.x;

    }


    6.判断socket连接是否断开 

    bool IsSocketClosed(SOCKET clientSocket)  
    {  
     bool ret = false;  
     HANDLE closeEvent = WSACreateEvent();  
     WSAEventSelect(clientSocket, closeEvent, FD_CLOSE);  
      
     DWORD dwRet = WaitForSingleObject(closeEvent, 0);  
       
     if(dwRet == WSA_WAIT_EVENT_0)  
     ret = true;  
     else if(dwRet == WSA_WAIT_TIMEOUT)  
     ret = false;  
      
     WSACloseEvent(closeEvent);  
     return ret;  

    版权声明:

  • 相关阅读:
    发一个多维数组转xml格式的php函数方法
    php 返回json和jsonp格式
    phpstudy修改端口及网站根目录和访问 localhost 显示目录文件夹
    web后端开发语言Java和PHP的比较
    VSCode 的PHP常用插件及安装
    Nginx服务器的Websockets配置方法
    WebSocket-demo
    前端资源
    HTTPS 升级指南
    HTTP 协议入门
  • 原文地址:https://www.cnblogs.com/walccott/p/4957113.html
Copyright © 2011-2022 走看看