
MFC
mummily
只为更好的学习只为学的更好
展开
-
MFC_OnSize_改变窗口大小(WM_SIZE消息映射)
//当改变窗口大小时,调节控件EDIT的大小void CChgWndDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); GetDlgItem(IDC_EDIT1)->MoveWindow(10,10,cx-20,cy-10); // 后面的那两个坐标要多减去10} 注:要将窗原创 2013-03-21 21:05:25 · 4494 阅读 · 0 评论 -
MFC - 进程间传递消息数据
>> SendMessageHWND hwnd=::FindWindow(NULL,"DataMsgClient"); if(hwnd==NULL) { AfxMessageBox("没有找到接受窗体"); return; } CString msgedit; GetDlgItem(IDC_EDIT1)->GetWindowText(msgedit);原创 2013-03-21 20:55:53 · 622 阅读 · 0 评论 -
线程同步使用方法:CMutex_CEvent_关键代码段
《WIndows核心编程》机械工艺出版社:深入的了解多线程和线程同步的问题3个的使用范围:1. CMutex、CEvent、关键代码段CMutex、CEvent:属于内核对象,速度比较慢,但可以拥有跨进程的线程同步关键代码段:工作于用户方式下,同步速度快,可能会造成死锁,不能拥有跨进程同步1. CEvent1.1 CEvent g_event=CreateEvent(NUL原创 2013-04-29 22:38:30 · 902 阅读 · 0 评论 -
MFC_CComboBox - 添加字符 - 清空字符 - 获得当前字符 - 获得本机磁盘号
// 添加字符void CCMyComDlg::OnButton1() { CComboBox* combobox1 = (CComboBox*)GetDlgItem(IDC_COMBO1); combobox1->AddString("男"); combobox1->AddString("女"); }// 清空字符void CCMyComDlg::OnButton原创 2013-03-21 22:09:21 · 1168 阅读 · 0 评论 -
MFC - 进程间传递消息命令
对话框:HWND hwnd=::FindWindow(NULL,"ReceiveMsg"); if(hwnd==NULL) { AfxMessageBox("没有找到接受消息的窗体"); return; } ::SendMessage(hwnd,WM_ENABLEBUTTON,0,0);说明:自定义:#define WM_ENABLEBUTTON WM_USER原创 2013-03-21 20:41:12 · 606 阅读 · 0 评论 -
PostMessage - SendMessage
1. CWnd::PostMessageBool PostMessage(UINT message,WPARAM wParam=0,LPARAM lParam=0);返回值:Nonzero if the message is posted; otherwise 0.(即消息是否提交成功)说明:将消息放入windows消息队列,就直接返回,需要通过使用GetMessage或PeekMes原创 2013-04-14 11:11:34 · 610 阅读 · 0 评论 -
MFC_CMenu_AppendMenu_基于dialog的动态创建menu
标题:基于dialog的动态创建menu使用方法:1. 在对话框的OnInitDialog()中SetMenu(&m_menu),主要是对m_menu的编辑2. 根 菜 单:m_menu.CreateMenu(); //如:“基础信息管理”、“系统管理” 弹出菜单:popmenu.CreatePopupMenu(); //如:“操作员信息” m_menu.Crea原创 2013-03-23 17:55:28 · 2742 阅读 · 0 评论 -
MFC_CMenu_CIconMenu_带图标的菜单
效果图:1. 如何修改单文档的标题(注:一个窗口的图标是由两部分组成的:文档标题+应用标题,此处修改的是文档标题)在*doc.h中添加:virtual void SetTitle(LPCTSTR lpszTitle);之后实现:void ***Doc::SetTitle(LPCTSTR lpszTitle) { lpszTitle = "带图标的程序菜单";原创 2013-03-24 11:25:56 · 3592 阅读 · 0 评论 -
MFC_如何连接Access数据库_读取出的数据显示在树上
第一部分:如何建立连接1. stdafx.h中添加:#import "c:\Program Files\\Common Files\\System\\ado\\msado15.dll" re_namespace ADODB \rename("EOF","ADOEOF")using namespace ADODB;2. 在当前应用的cpp里定义(和theApp的定义放一起):原创 2013-03-24 09:05:22 · 950 阅读 · 0 评论 -
MFC_多线程的使用
1. 使用的头文件#include "afxmt.h" //添加"afxmt.h"实现文件中能够正确使用同步类CSemaphore关键理解:CSemaphore sem_Write(2,2); //资源最多访问线程2个,当前可访问线程数2个 函数一:WaitForSingleObject 函数用来检测hHandle事件的信号状态,当函数的执行时间超过 dwMil原创 2013-03-26 22:58:01 · 548 阅读 · 0 评论 -
MFC_OnPaint_设置窗口背景图片
1. 不会自动适应窗口大小 CRect rc; GetWindowRect(&rc); CDC *pDC; CDC memdc; CBitmap *olddc; CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP1); pDC=this->GetDC(); memdc.CreateCompatibleDC(p原创 2013-03-21 21:52:10 · 1265 阅读 · 0 评论 -
MFC_BitmapTool(点击图标做相应的操作)
效果图:它的作用:点图标实现一个功能,该图标通过bitmap来实现1. 新建一个bitmap文件2. 在OnInitDialog()中,添加代码// 对每个图标设置资源IDUINT array[10];for (int i = 0;i{if (i ==3)array[i]= ID_SEPARATOR; //第四个按钮为分隔条elsearray[i原创 2013-03-24 09:38:23 · 684 阅读 · 0 评论 -
MFC_SOCKET_关于socket的服务端与客户端的通信
1. 如何创建socket对象成功1.1 创建socket对象用到的头文件:#include #include #pragma comment(lib, "ws2_32")创建对象:SOCKET sock = socket(2, 1, 0);if (INVALID_SOCKET != sock){AfxMessageBox("成功");}else原创 2013-03-25 23:18:48 · 814 阅读 · 0 评论 -
memset;wmemset(源自msdn)
以下源自msdn:void *memset( void *dest, int c, size_t count );wchar_t *wmemset( wchar_t *dest, wchar_t c, size_t count);翻译 2014-09-13 10:49:58 · 833 阅读 · 0 评论