VC雕虫小技集(七)

类别:VC语言 点击:0 评论:0 推荐:
  VC雕虫小技集(七)

何志丹

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);

}

 

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 <direct.h>

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<CObList,CLine*>  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点上

就分成三组了

与焦点顺序有关

本文地址:http://com.8s8s.com/it/it1453.htm