mfc c++常用函数

来源:互联网 发布:开票软件金税盘版名称 编辑:程序博客网 时间:2024/06/05 08:58
Beep(100,100);//频率,发声时间

设置开机启动
    HKEY hKey;
    //找到系统的启动项   
    LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";   
    //打开启动项Key   
    long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);   
    if(lRet == ERROR_SUCCESS)   
    {   
        char pFileName[MAX_PATH] = {0};   
        //得到程序自身的全路径   
        DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);   
        //添加一个子Key,并设置值 // 下面的"test"是应用程序名字(不加后缀.exe)  
        lRet = RegSetValueEx(hKey, "奶牛多节点检测", 0, REG_SZ, (BYTE *)pFileName, dwRet);   
        //关闭注册表   
        RegCloseKey(hKey);   
        if(lRet != ERROR_SUCCESS)   
        {   
            AfxMessageBox("系统参数错误,不能完成开机启动设置");   
        }   
        else  
        {  
            AfxMessageBox("打开开机启动成功");   
        }   
    }

更改静态文本框的字体
    头文件:CFont font1;
    font1.CreatePointFont(200,_T("宋体"),NULL);//设置静态文本框字体
    GetDlgItem(IDC_STATIC1)->SetFont(&font1);  

按钮失效:
GetDlgItem(IDC_BUTTON_openSocket)->EnableWindow(FALSE);//TURE恢复按钮

读写ini配置文件
GetPrivateProfileString
::WritePrivateProfileString

设置编辑框文字
SetDlgItemText(IDC_EDIT_show_data1,str1);
m_recv.SetSel(-1);//向后加文本
m_recv.ReplaceSel(strData+" "+str_time+"\r\n");

获取时间
CTime tm=CTime::GetCurrentTime();
CString strtime=tm.Format("%Y/%m/%d %H:%M:%S");


自定义消息
1.发送消息的对话框的.h文件中添加:
#define WM_USERMESSAGE WM_USER+n //WM_USERMESSAGE为自己定义的消息名称,n>100。
2.在需要发送消息的地方添加
 ::SendMessage(hwnd,WM_USERMESSAGE,XXXX,XXXX);hwnd是要发送消息的窗口的句柄;GetSafeHwnd()或者FindWindow()获取,第二个参数是消息的名称,第三个参数是WPARAM wParam, 第四个是LPARAM lParam就是需要输的数据(0,0)的时候没有,单纯的触发消息。Cstring 转换为LPARAM  (LPARAM)(LPCTSTR)str或者(WPARAM)(LPCTSTR)str
3.在需要接受的对话框中的头文件中添加:
#define WM_USERMESSAGE WM_USER+n //WM_USERMESSAGE为自己定义的消息名称,n>100。
afx_msg LRESULT ReceiveMessage(WPARAM wParam, LPARAM lParam); //添加自定义消息声明,其他代码行为程序原有
4.然后在接收消息对话框的源文件中找到消息映射宏部分,加入我们自定义的消息映射宏,代码如下:
ON_MESSAGE(WM_USERMESSAGE,ReceiveMessage)   // 添加自定义消息映射宏,其他代码行为程序原有
5.最后在源文件中自定义消息接收函数ReceiveMessage中添加接收消息处理函数,例如下:
  LRESULT CreDlg::ReceiveMessage(WPARAM wParam, LPARAM lParam)  
{  
    //int recvint = wParam;   
    CString recvstr = (LPCTSTR)wParam;
    AfxMessageBox(recvstr);
        return true;
}
  注意单文档 自己创建的类向view类发送消息 获取view类的句柄:( (CFrameWnd * )AfxGetMainWnd() )->GetActiveFrame()->GetActiveView()->m_hWnd


MFC实现让窗口置于桌面最上层:在对话框OnInitDialog()函数中加入以下代码:::SetWindowPos(GetSafeHwnd(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);








0 0
原创粉丝点击