1、判断焦点当前所在控件

2、动态移动控件位置

3、GDI+绘制文字

4、编辑框跳变显示

5、最大化显示

6、Uint uFormat常用值

7、获取菜单个数

8、添加气泡提示

9、编辑框输入时响应函数

10、隐藏菜单

11、修改标题栏标题

12、动态加载标题栏图标

13、动态改变菜单不可用

14、使主窗口可用/不可用

15、使关闭按钮不可用

16、listControl中获取所有行的checkbox状态

17、获取系统时间

18、获取BYTE字节数组的长度

19、CString和wchar_t *的相互转化

20、CString转TCHAR

21、当资源文件在别的编译器中打开后,点击菜单->窗口->关闭所有文档就可以解决了

1、判断焦点当前所在控件

if(this->GetFocus()->GetDlgCtrlID() == IDC_EDIT4)
{
//在
}

2、动态移动控件位置

消息:

CRect rect;
GetDlgItem(ID地址)->GetWindowRect(&rect);//获得控件的绝对坐标
ScreenToClient(&rect);//获得相对于主窗体的坐标
rect.OffsetRect(CSize(10,10));//要移动的相对位置
GetDlgItem(ID地址)->MoveWindow(rect);//移动到目标坐标

3、GDI+绘制文字

CString drawString = "GDI+输出文字";
FontFamily fontFamily(L"Century Gothic");
Gdiplus::Font font(&fontFamily, 10, FontStyleRegular, UnitPoint);
SolidBrush linGrBrush(Color(100, 255, 0, 0));
PointF pf;
pf.X = 100;
pf.Y = 100;graphics.DrawString((const WCHAR*)(LPCTSTR)drawString,-1, &font,pf,&linGrBrush);

4、编辑框跳变显示

GetDlgItem(IDC_EDIT5)->SetWindowText(add);
GetDlgItem(IDC_EDIT5)->UpdateWindow();//更新数据后直接刷新

5、最大化显示

APP->InitInstance()

pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);

6、Uint uFormat常用值
DT_BUTTON           //靠底显示
DT_CENTER           //居中显示
DT_LEFT                  //靠左显示
DT_RIGHT               //靠右显示
DT_SINGLELINE    //单行显示
DT_DOT                   //靠上显示
DT_VCENTER         //垂直方向居中
DT_WORDBREAK  //自动换行

7、获取菜单个数

获取主菜单栏中菜单个数:GetMenuItemCount(); 
获取主菜单某个菜单的子菜单个数:可用GetSubMenu获取后再用GetMenuItemCount()

8、添加气泡提示

申明:CToolTipCtrl m_ToolTipCtrl;

初始化:

m_ToolTipCtrl.Create(this);
m_ToolTipCtrl.AddTool(GetDlgItem(IDC_BUTTON1), _T("This is ToolTip"));
m_ToolTipCtrl.SetMaxTipWidth(123);
m_ToolTipCtrl.Activate(TRUE);

响应:

BOOL CXXXView::PreTranslateMessage(MSG* pMsg)
{
ASSERT(pMsg != NULL);
if (pMsg->message == WM_MOUSEMOVE || pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONUP)
{
m_ToolTipCtrl.RelayEvent(pMsg);
}
}

光标移到到IDC_BUTTON1按钮上就会出现如下:

9、编辑框输入时响应函数

OnUpdateEdit1();//输入时响应,不需要按回车键

10、隐藏菜单

视图类中初始化函数中添加:
CWnd *pWnd=AfxGetMainWnd();  
pWnd->SetMenu(NULL);  
pWnd->DrawMenuBar();

11、修改标题栏标题

BOOL CCMCCApp::InitInstance()

{

//函数return 前面添加下段

m_pMainWnd->SetWindowText("标题123456789");

}

随便什么地方:

AfxGetMainWnd()->SetWindowText("标题修改成功");//vs2013中不能全部修改,只能修改右边部分标题

11、去掉(隐藏)某一个菜单项

主函数中:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

GetMenu()->GetSubMenu(1)->RemoveMenu(0,MF_BYPOSITION );//第二菜单项中的第一个子菜单被移除

}

注:菜单被隐藏以后,继续隐藏后面菜单项,位置向前移动一位。

如下:不是一个菜单项隐藏三次,是连续隐藏0、1、2三个菜单项。

GetMenu()->GetSubMenu(1)->RemoveMenu(0,MF_BYPOSITION );

GetMenu()->GetSubMenu(1)->RemoveMenu(0,MF_BYPOSITION );

GetMenu()->GetSubMenu(1)->RemoveMenu(0,MF_BYPOSITION );

12、动态加载标题栏图标

视图类中:可以是初始化函数也可以是控件响应函数中添加

HICON hIcon = AfxGetApp()->LoadIcon(图标ID);//加载图标资源
ASSERT(hIcon);
AfxGetMainWnd()->SendMessage(WM_SETICON, TRUE, (LPARAM)hIcon);

13、动态改变菜单不可用

void   1view::OnUpdateCommunicationsDisablecommunications(CCmdUI *pCmdUI)中

pCmdUI->Enable(TRUE);//可用
pCmdUI->Enable(FALSE);//不可用

PS:判断pCmdUI->SetCheck(m_radiomode == 1);

14、使主窗口可用/不可用

CMainFrame* pMFram = (CMainFrame*)AfxGetMainWnd();
pMFram->EnableWindow(false);//主窗口不可用

//如果在View中就是视图窗口不可用,但是框架可用

EnableWindow(false);//窗口不可用

EnableWindow(true);//窗口可用

15、使关闭按钮不可用

CMenu* pSysMenu = AfxGetMainWnd()->GetSystemMenu(FALSE);if (pSysMenu != NULL){pSysMenu->EnableMenuItem(SC_CLOSE, MF_DISABLED | MF_GRAYED);}

PS:不能屏蔽在任务栏上面右击程序图标显示的”关闭窗口“功能。

16、listControl中获取所有行的checkbox状态

添加chexkbox风格:dwStyle |= LVS_EX_CHECKBOXES;

CString str;for(int i=0; i<m_list2.GetItemCount(); i++){if( m_list2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list2.GetCheck(i)){str.Format(_T("第%d行的checkbox为选中状态"), i);AfxMessageBox(str);}}

17、获取系统时间,使用CTime类,vs2013中,不需要头文件

CString str;
CTime tm;
tm = CTime::GetCurrentTime();
str = tm.Format("%Y年%m月%d日 %X ");//四个数据分别是年、月、日、时间
MessageBox(str);

18、获取BYTE字节数组的长度

int Byte(BYTE byte[])

{

return sizeof(byte);

}

PS:sizeof不能用来判断已经申请了内存大小的字节数组的长度,得到的是申请的内存长度,不是你们数据长度

19、CString和wchar_t *的相互转化

wchar_t 转为CString

wchar_t *OptionText;

CString cstring(OptionText);

CString 转换为wchar_t的为:

OptionText=cstring.AllocSysString();

20、CString转TCHAR

TCHAR *c = a.GetBuffer(a.GetLength());//a为CString

DWORD转换为CString

CString a.Formt("%d",DWORD);

【MFC之小知识点】相关推荐

  1. JavaScript 小知识点

    原型链相关 最详尽的 JS 原型与原型链终极详解 isNaN() 和 Number.isNaN() 的区别 isNaN() 是 ES1 规范: 是全局方法: 如果参数不是一个 Number 类型,会先 ...

  2. Python小知识点(3)--装饰器

    Python小知识点(3)--装饰器 (1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func):def done(*ar ...

  3. php-函数小知识点

    <?php //语句 //分支语句 /*$a=5; if($a==5) { echo "相等";} else { echo "budeng";}*/ // ...

  4. 0607am抽象类接口析构方法tostring小知识点

    /* class ren { public static $color;//静态 static function () { ren::$color; self::$color;//self只能写在类里 ...

  5. Python小知识点(5)--面向对象部分

    Python小知识点(5)--面向对象部分 面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.------ ...

  6. JS,JQ,PHP的小知识点整理

    在日常开发中所使用的JS,JQ,PHP的小知识点整理 持续更新-- 1.js和jq获取当前的时间戳 方法一: <script>var timestamp = Date.parse(new ...

  7. C语言小知识点练习总结

    最近在准备C语言的上级考试,之前对C接触不多,在练习过程中把一些小知识点记录下来. 1.字符串的截取 利用strncpy函数,传入三个参数,分别为目标字符串,起始位置,长度. 例如将日期字符串转化为数 ...

  8. 通信工程专业的一些小知识点

    原文链接:(更多文章移步链接) 通信工程专业的一些小知识点 - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/49285829 一. 无线信道的多径效应导致的频率选择 ...

  9. linux系统下用到的小知识点积累

    preface:在ubuntu下做事情,在终端下执行一些命令.或者在vim里面做一些操作.自然而然须要用到一些小知识点,没有怎么系统地看<鸟哥的菜>,基本上是遇到了什么问题想要实现什么功能 ...

最新文章

  1. mac搭建python开发环境_Mac中基于Homebrew搭建python开发环境
  2. H1标签对网站优化有什么作用?
  3. 从容稳进,高通正扎实推进5G
  4. 2017年9月18日
  5. Kinect实现简单的三维重建
  6. angular6--创建项目
  7. Silverlight Tools只支持英文版VS2008
  8. SpringMVC基础学习(二)—开发Handler
  9. 设计模式---抽象工厂模式(C++实现)
  10. 计算机tpu定义,TPU聚氨酯
  11. IDM插件chrome无法加载
  12. 【产品】外壳防护等级(IP代码)
  13. BeanShell用法笔记
  14. iPhone 行/水货、黑机、妖机、卡贴机科普。
  15. 【工具分享】佳能CR2格式的文件怎么转换成jpg?
  16. 青少年蓝桥杯python组(STEMA初级组)
  17. NT、WDM、WDF驱动概念
  18. 555 定时器及其应用---报警电路
  19. 推荐系统中的冷启动问题
  20. 基于PHP+MySQL实现(Web)英语学习与测试平台【100010284】

热门文章

  1. 照片物品怎么进行识别?这些方法不可以错过
  2. 我用 Python 爬了一下西安的房价
  3. 当技术重塑健身产业,AI有可能胜过人类教练吗?
  4. 赌比亚迪,怼特斯拉,巴菲特为什么?
  5. Java反射:使用Annotation功能
  6. C++11 promise
  7. 免安装msyql5.7的安装步骤
  8. Html 文本框只读
  9. java 文本框只读_css控制文本框的只读属性的方法
  10. 具有超强阅读理解能力的人工智能(Maluuba机器人)