![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 59
法尔我给他
这个作者很懒,什么都没留下…
展开
-
QT报错:undefined reference to vtable for (class name)
<br />原因:<br />1.类中的虚函数没有函数体.<br />2.类中有虚函数,没有虚析构函数.原创 2011-05-19 22:01:00 · 929 阅读 · 0 评论 -
MFC 关闭所有弹出模态对话框,并创建新的对话框(切换/跳转窗口)
CWnd* pOldWnd = CWnd::FromHandle(GetActiveWindow ());//获得当前活动窗口,如果为主窗口,跳过! if (this->m_pMainWnd!= pOldWnd)//非主窗口 { CDialog* pOldDlg = (CDialog*)CWnd::FromHandle (GetActiveWindow ()); HWND hwn原创 2009-09-22 21:07:00 · 3824 阅读 · 1 评论 -
DECIMAL 和CString 转换
CString = (LPCTSTR)(_bstr_t) _variant_t.decVal;原创 2009-09-14 23:33:00 · 1491 阅读 · 0 评论 -
CTime/COleDateTime::Format方法的使用
CTime/COleDateTime::Format方法的使用 CTime ct = CTime::GetCurrentTime();CString str = ct.Format("%Y-%m_%d %H-%M-%S");输出为:str="2006-04-23 15-21-30"%a Ab原创 2009-07-09 16:19:00 · 1143 阅读 · 0 评论 -
CString转int方法:
CString转int方法:CString h; int a=_ttoi(h); int转化CString方法:int a=1263; CString h; h.Format(_T("%d"),a);原创 2009-07-09 16:22:00 · 861 阅读 · 0 评论 -
TAB控件是使用以及CDateTimeCtrl的使用
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl2、创建两个新的对话框资源,其属性作如下修改:Border:none //边界为空,这样它就没了标题栏Style :Child // 这样这个模板就可以当作转载 2009-09-09 13:26:00 · 1204 阅读 · 0 评论 -
Tab控件的基本操作方法
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl2、创建两个新的对话框资源,其属性作如下修改:Border:none //边界为空,这样它就没了标题栏Style :Child // 这样这个模板就可以当作转载 2009-09-09 01:36:00 · 843 阅读 · 0 评论 -
VC对话框使用OnEraseBkgnd函数位图背景并透明
1、使用OnEraseBkgnd函数实现对话框位图背景BOOL CDisplayBmpBackGroundDlg::OnEraseBkgnd(CDC *pDC) //老婆:增加擦出背景函数{ CRect rect; GetClientRect(&rect); CBitmap m_pBmp; BITMAP bm; CDC dcMem; m_pBmp.LoadBitmap(IDB转载 2009-07-04 11:49:00 · 874 阅读 · 0 评论 -
VC++之随父窗口变化调整控件大小
如果对话框或视类的大小调后,控件的大小和位置没有变化,界面看起来会很不爽控件是从CWnd派生的,但不能使用SetWindowPos()或OnSize()或OnSizing()来改变其大小,应在父窗口的WM_SIZE消息中使用MoveWindow()来进行调整。VC++之根据对话框大小调整控件大小1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对话框的转载 2009-07-04 21:56:00 · 589 阅读 · 0 评论 -
toolbar制作
MFC中 Toolbar的两种创建方式1.创建工具栏资源(toolbar resource)2.构造CToolBar对象3.调用CToolBar对象的成员方法Create或CreateEx来创建工具栏4.调用LoadToolBar来载入工具栏资源或者1.构造CToolBar对象2.调用CToolBar对象的成员方法Create或CreateEx来创建工具栏3.调用LoadBitmap方原创 2009-07-04 21:54:00 · 1285 阅读 · 1 评论 -
toolbar加载位图
代码加入: 你就是想改变工具条的图吗?可以增加2个位图资源,然后装载上,就可以了。下面的代码实现热敏工具条,你可以参考! if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIP转载 2009-07-04 21:53:00 · 991 阅读 · 0 评论 -
UpdateData() --MFC函数
UpdateData,顾名思义,是用来刷新数据的。 UpdateData(TRUE) -- 刷新控件的值到对应的变量 UpdateData(FALSE) -- 拷贝变量值到控件显示例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); 将IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改原创 2009-09-02 08:57:00 · 598 阅读 · 0 评论 -
CWnd指针和HWnd
HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。 由HWnd得到CWnd*:CWnd wnd;HWnd hWnd;wnd.Attach(hWnd);通常一个窗口资源已经和一个CWnd类的对原创 2009-09-22 15:09:00 · 912 阅读 · 0 评论 -
ColorEdit
//ColorEdit.h#ifndef CCOLOREDIT_H_#define CCOLOREDIT_H_#pragma once#include "afxwin.h"#define TRANS_BACK -1 class CColorEdit : public CEdit{public: CColorEdit(void); ~CColorEdit(void);pr转载 2009-09-29 15:09:00 · 1925 阅读 · 1 评论 -
C++编码规范
<br />今天看到一篇新闻:Google对外发布C++编码规范<br />http://sd.csdn.net/a/20110308/293200.html,<br />http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml<br />很好.原创 2011-03-08 14:32:00 · 968 阅读 · 0 评论 -
C++中模板类使用友元模板函数
问题始于学习数据结构,自己编写一个单链表,其中用到了重载输出运算符template class List{ friend std::ostream& operator & slist); //……};用vs2008可编译,但无法链接:无法解析的外部符号……后来上网查改为template class List{ friend std::ostream& operator转载 2010-01-02 08:40:00 · 2390 阅读 · 0 评论 -
类成员函数 指针函数
在编程工作中常会遇到在一个“类”中通过函数指针调用成员函数的要求,如,当在一个类中使用了C++标准库中的排序函数qsort时,因qsort参数需要一个“比较函数”指针,如果这个“类”使用某个成员函数作“比较函数”,就需要将这个成员函数的指针传给qsort供其调用。本文所讨论的用指针调用 “类”的成员函数包括以下三种情况: (1).将 “类”的成员函数指针赋予同类型非成员函数指针,如:转载 2010-01-20 18:43:00 · 1506 阅读 · 0 评论 -
__stdcall __cdecl __fastcall
在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数转载 2010-01-20 18:44:00 · 822 阅读 · 0 评论 -
函数指针 指向 类成员!
在编程工作中常会遇到在一个“类”中通过函数指针调用成员函数的要求,如,当在一个类中使用了C++标准库中的排序函数qsort时,因qsort参数需要一个“比较函数”指针,如果这个“类”使用某个成员函数作“比较函数”,就需要将这个成员函数的指针传给qsort供其调用。本文所讨论的用指针调用 “类”的成员函数包括以下三种情况: (1).将 “类”的成员函数指针赋予同类型非成员函数指针,如:转载 2010-01-15 08:50:00 · 1516 阅读 · 0 评论 -
C++代码优化
谈到优化,很多人都会直接想到汇编。难道优化只能在汇编层次吗?当然不是,C++层次一样可以作代码优化,其中有些常常是意想不到的。在C++层次进行优化,比在汇编层次优化具有更好的移植性,应该是优化中的首选做法。 1.确定浮点型变量和表达式是 float 型 为了让编译器产生更好的代码(比如说产生3DNow! 或SSE指令的代码),必须确定浮点型变量和表达式是 float 型的。要特别转载 2009-10-20 23:13:00 · 845 阅读 · 0 评论 -
C++开源跨平台类库集
经典的C++库 STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。 Boost---------准标准库, 功能强大 涉及能想的到的大部分非特别领域的算法, 有一个大的C++社区支持 WxWindows---转载 2009-10-20 20:00:00 · 881 阅读 · 0 评论 -
combobox 处理回车
combobox控件,由一个edit编辑框和一个下拉列表框组成。 BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { switch( pMsg->wParam )转载 2009-09-27 14:16:00 · 1658 阅读 · 0 评论 -
MFC文件读写
计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。面向存储的文件技术什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文件的形式存储在磁盘上的,每个文件都有一个文件名。计算机就是对文件按名存取的。文件名的格式如下:主文件名.扩展名。为什么要在程序中使用文件?通常,程序中转载 2009-09-24 23:30:00 · 38630 阅读 · 5 评论 -
CString 到char[]的转换
//Cstring -->char[] CString str; str = "kingpang"; char cstr[128]; WideCharToMultiByte(CP_OEMCP, 0, str, -1,(LPSTR) cstr, str.GetLength(), NULL, NULL);转载 2009-09-26 09:54:00 · 702 阅读 · 0 评论 -
MFC处理F1~F10的消息
if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_F1) { return TRUE; } else if (pMsg->wParam == VK_F2) { return TRUE; } else if (pMsg->wParam == VK_F3) {原创 2009-09-22 21:04:00 · 2125 阅读 · 0 评论 -
CListCtrl选中颜色更改!
if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { if( m_LCselect.GetItemState(nItem, CDIS_SELECTED) ) { //pLVCD->nmcd.uItemState ^= CDIS_SELECTED;// 也对! pLVCD->nmcd.u原创 2009-08-22 09:07:00 · 2224 阅读 · 0 评论 -
自己的OnCustomdraw
void CDSelect::OnNMCustomdrawLcselect(NMHDR *pNMHDR, LRESULT *pResult){ LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = CDRF_DODEFAULT; // First thing - check t原创 2009-08-21 10:07:00 · 3085 阅读 · 0 评论 -
控件字体
简单的步骤:在Windows中,每个窗体都有自己的字体.要改变其字体首先要CFont::CreateFont创建一个字体,然后用CWnd::SetFont选择此字体,赋给控件.但很多人可能会因为CreateFont的参数之多,望而却步.下面我介绍一下参数. 函数原型: BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int转载 2009-07-20 18:43:00 · 1007 阅读 · 0 评论 -
CEdit 字体大小 只读属性
LOGFONT logfont;//最好弄成类成员,全局变量,静态成员 CFont *pfont = m_ctrShowMessage.GetFont(); pfont->GetLogFont( &logfont ); logfont.lfHeight =logfont.lfHeight * 1.5; logfont.lfWidt转载 2009-07-20 18:17:00 · 772 阅读 · 0 评论 -
CEdit 字体颜色
下例中,m_edit是一个文本框对象(属于对话框成员)。 HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);转载 2009-07-18 09:16:00 · 5653 阅读 · 1 评论 -
C++中,CTime 与 CString转换
C++中,CTime 与 CString转换 C++中,CTime 与 CString转换CTime m_StartTime1 = CTime::GetCurrentTime();CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" ); 使用sprintf及sscanf函数进行CString与CTime之间的转载 2009-07-15 21:53:00 · 1116 阅读 · 0 评论 -
CString double转换
CString strFrom;double x;strFrom = ......;x = _tstof(strFrom);或者:x = _wtof(strFrom);在使用atof()时,会产生类型转换错误! strFrom.Format(_T("%f"),x);原创 2009-07-15 19:49:00 · 706 阅读 · 0 评论 -
CListCtrl 用法总结
CListCtrl 用法总结 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,转载 2009-07-14 13:16:00 · 639 阅读 · 0 评论 -
VC的CListCtrl控件
VC的CListCtrl控件 收藏 1. CListCtrl 样式及设置2. 扩展样式设置3. 数据插入4. 一直选中Item5. 选中和取消选中Item6. 得到CListCtrl中所有行的checkbox的状态7. 得到CListCtrl中所有选中行的序号8. 得到item的信息9. 得到CListCtrl的所有列的header字符串内容10. 使CList转载 2009-07-15 19:58:00 · 831 阅读 · 0 评论 -
ADOX动态创建access数据库
#include "stdafx.h"void CreateData(){ /* CString szPath; CString szFile; ::GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH),MAX_PATH); int nPos; nPos = szPath.ReverseFind(//); szPa原创 2009-04-11 16:14:00 · 1124 阅读 · 0 评论 -
ADOX连接字符串
//strFile = strPath+_T("//bookdata.accdb");//strConnection = _T("Provider=Microsoft.JET.OLEDB.4.0;Data source=")+strFile+_T(";Jet OLEDB:Password=")+strEnCode+_T(";");//strConnection.Format(_T("Provide原创 2009-04-13 16:20:00 · 716 阅读 · 0 评论 -
ADOX创建数据表
if(FALSE == ExistFile()) { AfxMessageBox(_T("数据库不存在!")); return; } HRESULT hr = S_OK; ADOX::_CatalogPtr m_pCatalog = NULL; ADOX::_TablePtr m_pTable = NULL; _CommandPtr m_pCmd(__uuidof(Comma原创 2009-04-14 11:04:00 · 1277 阅读 · 0 评论 -
SQL创建自动编号的主键
在ACCESS帮助中,没有明确指出自动编号的数据类型,本文告诉你如何使用JET SQL数据定义语句创建表,定义自动编号,并设为主键。正 文:以下是使用JET SQL数据定义语句创建表,定义[朋友ID]为自动编号,并设为主键。 CREATE TABLE 朋友([朋友ID] AUTOINCREMENT,//这里要用IDENTITY(1,1)[姓氏] text,[名字] text,[出生日期原创 2009-04-15 23:17:00 · 2312 阅读 · 1 评论 -
List Control的刷新闪烁
List Control的刷新闪烁,style为ICON,我重写了OnCustomDraw事件,每次刷新对于List的每个item都会调一次OnCustomDraw,这样产生严重的闪烁双缓冲啊,绘图基本都这么干 给你一个类: class CMemDC : public CDC { public: CMemDC(转载 2009-07-20 18:57:00 · 3732 阅读 · 0 评论 -
汉字首拼实现
char xxx_gb2312( unsigned long word ) { static const unsigned long areacode[] = { 0xB0A1, 0xB0C5, 0xB2C1, 0xB4EE, 0xB6EA, 0xB7A2, 0xB8C1 // a b c d e f g , 0xB9FE, 0xBBF7, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2转载 2009-07-16 22:10:00 · 867 阅读 · 0 评论