VC雕虫小技集(七) (转)

本文分享了一系列VC++编程中的实用技巧,包括图片控件的使用、控件字体调整、大小键盘ASCII码区别等,还介绍了如何处理对话框间的交互、文件夹删除等问题。
VC雕虫小技集(七) (转)[@more@] 

VC雕虫小技集(七)

.NET/develop/author/netauthor/he_zhidan/">何志丹

1,图片控件

右键属性 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);

}

 XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

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:程序scribblescribbledoc.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点上

就分成三组了

与焦点顺序有关


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-962611/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-962611/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值