MFC开发之各种笔记

1、问题:获取CString长度时使用GetLength获取的都为0

解决办法:在取长度之前用GetBuffer()了
如果用了,就在用后ReleaseBuffer()一下

2、从一个类调用另一个类的函数(函数中有控件操作)

一般的从一个类调用另一个类的函数、变量一般就是:A、B两个类,

在B类中添加就可以

CMyA a;

a.变量或者函数;

但如果调用A中的函数有控件操作就会程序错误,可以使用指针的方式:

CMyA *dlg = (CMyA*)GetParent();// 
dlg.函数();

3、在对话框Border设置为None后,怎么拖动对话框

在左键按下消息函数添加:PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));

同时可以判断point可以设置在哪些区域才能拖动

4、在任务栏点击最小化程序和还原程序的响应函数

WM_SYSCOMMAND

SC_CLOSE,"61536", , 关闭
 SC_RESTORE,"61728", , 还原
 SC_SIZE,"61440", , 大小
 SC_MAXIMIZE,"61488", , 最大化
 SC_MINIMIZE,"61472", , 最小化

其中

if(nID == MAXIMIZE)//当点击任务栏上图标最小化程序的判断

5、 MFC中使对话框变成圆角矩形的代码(有锯齿)
 

BOOLCLoginDlg::OnInitDialog() 

CDialog::OnInitDialog(); 


SetWindowLong(m_hWnd,GWL_HWNDPARENT,NULL);

CRgnm_rgn; 
RECT rc; 
GetWindowRect(&rc); //有边框对话框

//GetClientRect(&rc);//无边框对话框
m_rgn.CreateRoundRectRgn(rc.left,rc.top,rc.right,rc.bottom,100,100); //矩形圆角

//m_rgn.CreateEllipticRgn(rc.left,rc.top,rc.right,rc.bottom);//椭圆
SetWindowRgn(m_rgn,TRUE); 


return TRUE; // return TRUE unless you set the focus to a control 
}
6、判断CString中有某个字符的个数

CString add = TEXT("zxcvcxvzx");

//查找替换:Replace函数返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。

int sum = add.Replace(TEXT("z"),TEXT("z"));//sum = 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值