VC雕虫小技集(七)
何志丹
1,图片控件标签:控件,VC,name,void,sPath,fd,logfont,雕虫小技 From: https://blog.51cto.com/u_15724537/5732453
右键属性 type : bitmap
你直接选image也行
IDB_BITMAP1位图的ID
m_ctrl 是与图片控件相关联的控制型变量
void CDlg2Dlg::OnButton1()
{
CBitmap bitmap1;
bitmap1.LoadBitmap(IDB_BITMAP1);
m_ctrl.SetBitmap(bitmap1);
}
void CDlg2Dlg::OnButton2()
{
CBitmap bitmap2;
bitmap2.LoadBitmap(IDB_BITMAP2);
m_ctrl.SetBitmap(bitmap2);
}
2, 什么我给控件赋变量时看不到cortrol ID?
1,单选按钮,把group钩上.
2,静态控件把ID改成非IDC_STATIC.
3, 大小键盘的ascll码
0-9 不同,但+,-相同.
4,显示键盘输入的字符,尽量避免闪烁
void CSdiView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CDC * pDC = GetDC();
StringData += nChar;
CRect r(0,0,0,0);
pDC->DrawText(StringData,&r,DT_LEFT|DT_CALCRECT);
InvalidateRect(r);
CView::OnChar(nChar, nRepCnt, nFlags);
}
void CSdiView::OnDraw(CDC* pDC)
{
pDC->DrawText(StringData,CRect(0,0,1000,1000),DT_LEFT);
}
5,对话框A domodal()出一个对话框B,点击B一个按钮以后,要求调用A的类中的一个函数。
在b的响应函数中处理:
((A *)GetParent())->fun();
在b中inlcude A所在的文件
6, 删除文件夹及包含的文件
#include
void DeleteDirFile(CString sPath)
{
WIN32_FIND_DATA fd;
HANDLE hFind = ::FindFirstFile(sPath + "*.*",&fd);
if (hFind != INVALID_HANDLE_VALUE)
{
while (::FindNextFile(hFind,&fd))
{
//判断是否为目录
if (fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
CString name;
name = fd.cFileName;
//判断是否为.和..
if ((name != ".") && (name != ".."))
{
//如果是真正的目录,进行递归
DeleteDirFile(sPath + fd.cFileName + "//");
}
}
else
DeleteFile(sPath + fd.cFileName);
}
::FindClose(hFind);
}
RemoveDirectory(sPath);
}
7, 改变控件字体的大小
LOGFONT logfont;
CFont *pfont = m_ctrShowMessage.GetFont();
pfont->GetLogFont( &logfont );
logfont.lfHeight =logfont.lfHeight * 1.5;
logfont.lfWidth = logfont.lfWidth * 1.5;
CFont font;
font.CreateFontIndirect(&logfont);
m_ctrShowMessage.SetFont(&font);
8, 想用classwizard新建一个类,但发现baseclass一栏中没有我要的基类(CObList类)
class type : Generic
自己输入
9, CTypedPtrList
lineList;
为什么VC报错:
c:/程序/scribble/scribbledoc.h(50) : error C2143: syntax error : missing ';' before '<'
# include "afxtempl.h"
是字符 l,不是数字1
10, 不提示成员函数,怎么办?
CString s1="dfdsf";
s1.
试一下以下三种方法:
1, Build->Clean, Build->ReBuildAll.
2,手动删除*.ncb
3,安装辅助工具vc_assist6
11, 我有6个Radio Box如何分成3组
将三个Radio Box的 Group点上
就分成三组了
与焦点顺序有关