- 博客(57)
- 资源 (15)
- 收藏
- 关注
原创 界面设计技巧
1 截获键盘消息的函数BOOL CBApp::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class CBDevice* pDevice = m_pSetting->getCurrentDevice(); if(pDevice !=
2011-12-30 16:09:28 568
转载 使用IE8后 MFC添加类报错
Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1000]"1207"=dword:00000000添加以上代码到注册表到记事本,改为REG,运行即可
2011-12-30 16:00:28 566
转载 执行添加删除操作时提示代码元素类名是只读的
基本按下列步骤能解决:1、关闭解决方案,删除工程目录里的.ncb文件,再重新打开基本上就行了。2、打开Resourse.h文件看一下,可能有两个宏对应同一个值,删除多余的就行了。另外,一个可能的原因是头文件和CPP文件都必须从服务器中CHECK OUT
2011-12-30 15:59:46 529
原创 注册表操作技巧
1 用REG删除注册表项[-HKEY_CURRENT_USER\Software\应用程序向导生成的本地应用程序\LaserCA]加-即可2 XP像Win7一样在右键菜单中加入“打开文件位置”REGEDIT4[HKEY_CLASSES_ROOT\*\Shell\打开所在文件夹(&O)][HKEY_CLASSES_ROOT\*\Shell\打开所在文件夹(&O)\Comman
2011-12-30 15:58:23 571
原创 图像编程常识
1 载入ICONHICON hicon = NULL;hicon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_LOCK));((CButton*)GetDlgItem(IDC_KEEPRATIO))->SetIcon(hicon);2 平面内坐标旋转公式任意一点A(ax,ay),按旋转中心点(x,y)逆时针旋转
2011-12-29 14:00:54 636
转载 HBITMAP和CBitmap的互相转换
1 HBITMAP转成CBitmapHBITMAP hBmp; 方法①CBitmap* pBmp = CBitmap::FromHandle(hBmp); 方法②CBitmap bmp; bmp.Attach(hBmp); 方法①转换出来的临时CBitmap对象似乎并不是可靠的!MSDN上说这个临时只在某一时间段内有效。等到某个空闲的时候,这个临时CBit
2011-12-29 13:59:37 3959
原创 图形旋转90度计算
1原地旋转90度 double cx = (bBox.top + bBox.bottom) * 0.5;; double cy = bBox.left + fabs(bBox.bottom - bBox.top) * 0.5;; double dRotateRadian = -90.0 / 360.0 * TWO_PI; double dCos = cos(dRo
2011-12-27 13:59:41 2631
转载 虚拟机错误提示VMware Workstation unrecoverable error:(vmui)Unable to create VmappPoll object:没有注册类别.
如果你点击VMware图标发现弹出一个对话框,内容如下时, VMware Workstation unrecoverable error:(vmui)Unable to create VmappPoll object:没有注册类别. VMware Workstation unrecoverable error:(vmui)Unable to create VmappPoll object:
2011-12-27 13:51:59 11464 4
原创 添加lib库的方法
方法一 静态加载:点击菜单命令 “项目/属性”,弹出项目属性对话框; 或者在解决方案视图或类视图中,右击项目名称,选“属性”,弹出项目属性对话框;在弹出对话框的活动配置中,选择 “配置属性/链接器/输入/附加依赖项”,即可输入待加入的lib库文件,添加完毕点击“应用”或“确定”按钮。如果要对所有的配置添加lib库文件,可 先将活动配置切换为“所有配置”。 在“配置属性”---“
2011-12-27 13:48:38 1001
原创 创建启动画面相关问题
1 如何创建启动画面始终置顶不必担心被切换 void CBSplashWindow::CreateSplash(){ //Create Splash Window CWnd::CreateEx(WS_EX_TOPMOST, AfxRegisterWndClass(0), NULL, WS_POPUP, 0, 0, m_bmBitmap.bmWidth, //
2011-12-27 13:42:52 515
原创 控件技巧
1 如果控件相互遮挡,则可通过传递消息的方式来响应操作SendMessage消息::SendMessage(hwnd, WM_SETTEXT, 0, "hello ") GetParent()->SendMessage(WM_LBUTTONUP, (WPARAM)this->m_hWnd); //发送消息至父窗口2 对话框指针传递//得到主对话框指针(在子对话框类中取得)
2011-12-27 13:31:19 629
原创 绘制矩形时按下SHIFT则绘制正方形
//按下SHIFT时绘制正方形if(GetKeyState(VK_SHIFT) & PRESSED){ double dDistX = tempPoint.x - StartPt.x; double dDistY = tempPoint.y - StartPt.y; //判断较短的边 if(fabs(dDistX) < fabs(dDistY)) {
2011-12-27 13:25:32 1555
原创 绘制多边形
CBPoint FirstPt;FirstPt = EndPt;pDC->MoveTo((int)(FirstPt.x),(int)( FirstPt.y));double fsin = sin(TWO_PI / iPolygonsides);double fcos = cos(TWO_PI / iPolygonsides); for (int i = 1 ; i < iPolygons
2011-12-27 13:23:30 680
原创 关于VS2008 SP1和 VS2010备忘
1 调用VS2008的新控件,但是又没有用2010的框架,则需要在析构时加入以下,否则会内存泄露CMFCVisualManager::DestroyInstance(TRUE);2 VS2010绘图CDrawingManager3 VS2005转换成VS2010时提示类未定义在 stdafx.h中加入 #include
2011-12-27 10:42:59 580
原创 常识
1 定时方法1:setTimer onTimer方法2:getCurrentTime getTickCount2 产生随机数0-255rand()%256rand()产生0 - 327673 批量修改程序代码的缩进选中需要调整的代码,然后按下ALT+F8, 代码就会变得整齐了4 转换磁盘格式FAT32到NTFS运行cmdconvert D:/
2011-12-27 10:34:26 623
原创 命名规则
a 数组b BOOLby BYTEc charcb 字节计数cr 颜色cx,cy short x,y轴坐标长度值x,y short x,y轴坐标值dw DWORDfn 函数变量g_ 全局变量h 句柄i intm_ 类成员变量n short intp 指针l LONG lp 长指针s/str 字符串u UINT
2011-12-22 15:40:22 437
转载 SetCapture
函数功能: 该函数在属于当前线程的指定窗口里设置鼠标捕获。 一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。 意思是说,只要设置了SetCapture,所有鼠标的操作都会在调用该函数的窗口处捕捉到,包括该窗口以外的鼠标操作,你可以看到SetCapture有一个HWND类型的参数(API原型),就是标识这个窗口的,如果不执行这个函数你
2011-12-22 15:35:41 618
转载 ScrrenToClient
函数功能:该函数把屏幕上指定点的屏幕坐标转换成用户坐标。函数原型:BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint); BOOL ScreenToClient( HWNDhWnd, // handle to window LPPOINTlpPoint// screen coordinates );参数:hWn
2011-12-22 15:32:47 684
转载 VC++ 调用 C#生成DLL的两种方法
今年在C++调用对方用C#写的DLL时,遇到托管和非托管的问题。 原帖: http://topic.csdn.net/u/20110916/12/fcf63501-45ef-46d9-92d1-6ffa91086a80.html 以及参考文章: VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一
2011-12-22 09:18:11 3066
转载 MFC数组模板类CArray
MFC的数组类支持的数组类似于C++中的常规数组,可以存放任何数据类型。C++的常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。 MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CWord
2011-12-21 16:37:30 1233
转载 Debug和Release之本质区别的讨论
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之
2011-12-21 14:09:04 543
转载 Hot Key Control快捷键控件
hot key control用法:A "hot key control" is a window that enables the user to create a hot key. A "hot key" is a key combination that the user can press to perform an action quickly. (For example, a
2011-12-21 13:27:03 3856
转载 VS2005设置可以在Release模式下调试( 图)
一、首先:从“配置管理器”中将项目配置成Release版:在下拉列表中选择了Release后,点击“关闭”即可。 见图-1 。 二、按Alt+F7:进入当前项目的属性设置:经过上面的设置,应该是“活动(Release)”,然后按下面的三个图示分别设置: 见图-2, 图-3, 图-4,OK!可以在Release版中进行调试
2011-12-21 11:38:48 1242
转载 在对话框中添加工具栏的两种方法
方法①用ICO组成的工具栏在用VC做信息管理系统时,我们有时会做基于对话框的程序,在对话框中添加工具栏用以这种方法,我们可以随心添加自己想要的Ico图标到工具栏上,不受添加一个Bmp图片时想要图标没有不想要的却很多,难以找到合适的Bmp图片以对应相应的工具栏按钮从而形象的表达按钮的功能.当然能过别的图片处理工具编辑Bmp图片后也能达到程序需求,但不如这种方法方便. 先找到自己想要的I
2011-12-20 16:43:54 1283
转载 CComboBox控件的使用
一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。2. 在程序初始化时动态添加 如: //控件内容初始化 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetConten
2011-12-20 14:05:38 940
转载 VC/MFC按钮(CButton)控件
1如何在按钮控件上显示图片 首先确定你要显示在按钮控件的图片类型是什么,这里我是ico图标,由于要在按钮里显示ico图标,所以要把按钮控件的属性改一下,方法是右击按钮控件,选择属性,单击样式选项卡,把图标这一项给勾上。然后为这个按钮控件关联一个变量如:m_Quit,类型是"Control",以后不做说明的话,类型都是"Control".按钮控件类(CButton)类
2011-12-19 16:45:11 4248
转载 WinAPI: ShellExecute - 打开外部程序或文件
ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open、print} FileName: PChar; {指定要打开的文件或程序} Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil} Directory: PChar; {
2011-12-15 16:44:35 833
转载 doc,view,frame互相调用
在CSDN论坛闲逛时看到RT的一篇帖子,先收藏,并整理如下。访问应用程序的其它类 获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainW
2011-12-13 15:44:33 545
转载 VC - MFC鼠标拖动效果编程
要实现的功能实际上很简单,一般人都用到见惯不惯了,但是实现起来还是有点意思的。问题详细描述:(三步)单击鼠标左键时记录下单击点;鼠标拖动时,显示的矩形框能够动态的跟随显示;释放鼠标左键时擦出矩形框。这样分析其实问题就简单一些了,只需要对鼠标的三个事件进行相应就可以了。代码主要在三处地方修改了:第一处:VIEW类中设置私有变量(VIEW类.h文件中)priva
2011-12-12 11:48:52 3903
转载 推导坐标旋转公式
在《Flash actionScript 3.0 动画教程》一书中有一个旋转公式:x1=cos(angle)*x-sin(angle)*y;y1=cos(angle)*y+sin(angle)*x;其中x,y表示物体相对于旋转点旋转angle的角度之前的坐标,x1,y1表示物体旋转angle后相对于旋转点的坐标 从数学上来说,此公式可以用来计算某个点绕另外一点旋转
2011-12-12 11:43:02 1015
转载 Visual studio 2008/2010 MFC程序Menu、Toolbar字体偏小解决办法
首先,这是一个MFC的Bughttp://connect.microsoft.com/VisualStudio/feedback/details/505466/mfc-visual-style-font-size-too-small-to-display-chinese-character-clearly-on-windows-xp MFC visual style font si
2011-12-12 11:37:36 1475
转载 SetWindowRgn,可用于创建不规则窗口
函数功能描述:设置窗口区域.函数原型int SetWindowRgn( HWND hWnd, // 要设置其区域的窗口句柄 HRGN hRgn, // 区域句柄 BOOL bRedraw // 重画标志);参数hWnd要设置其区域的窗口的句柄.hRgn区域的句柄.该函数把窗口的区域设置成由此参数指定的区域.系统将仅绘制窗
2011-12-12 11:34:29 1131
转载 MFC并列显示多个工具栏
创建两个工具栏合并时第二个工具栏总是跑回下一行,终于折腾到放一行了,呵呵。。。第一个工具栏:if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_F
2011-12-12 11:32:21 3041
原创 VB下继承VC接口生成COM组件
在VB下调用VC写的COM动态库,并生产COM组件。程序很简单,只是当时写的时候因为对VB语言的不熟悉,就弄得很困难。此处是原帖:http://topic.csdn.net/u/20110313/09/f2b56748-3cf8-4b0d-91cd-ee9035f3c130.htmlPublic Class Css Implements laserca.ICAMenu'接口继承
2011-12-12 11:23:24 852
原创 三角函数公式
pi 是派的意思(如果你没有切换到公式版本)^是次方的意思,常见角度sin(pi/6)= 1/2 sin(pi/3)=根号3 / 2sin(pi/2)=1sin(pi)= 0cos(pi/6)=根号3 / 2cos(pi/3)=1/2cos(pi/2)=0cos(pi)=-11.诱导公式sin(-a)=-sin(a)cos(-a)=cos(a)sin(pi
2011-12-12 11:17:55 2177
转载 用TlbImp.exe生成程序可调用的Dll
在很多项目当中需要安装某些程序并调用接口...虽然配置服务器上也安装了程序,但是发布的程序却不能直接调用...后来发现在VS里调试重新引用一下Dll就没有问题了.但是不可能每安装一次就重新调试一下...因为需要配置的机器未必会安装Visual Studio...有个办法可以解决配置的问题...主角就是:TlbImp.exe,它是Visual Studio自带的类型库导入程序,路
2011-12-12 11:09:34 901
转载 MFC文件操作大全(二)
28.打开对话框CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,All Files (*.*)|*.*||,AfxGetMainWnd());CString str(" ",10000);mFileDlg.m_ofn.lpstrFile=str.G
2011-12-12 11:05:53 1592
原创 vs2008去掉“正在更新IntelliSense”
这个更新是智能补全功能,在有visual assistX后就没必要再留了1 VC/vcpackages/feacp.dll 删除2 solution解决方案下ncb文件设置为只读世界就清净了
2011-12-11 21:33:10 1555
原创 字符串用法集合
1查找int Find( TCHAR ch ) const;int Find( LPCTSTR lpszSub ) const;int Find( TCHAR ch, int nStart ) const;int Find( LPCTSTR lpszSub, int nStart ) const;返回值:返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引
2011-12-07 11:56:25 559
原创 读取二进制文件
CByteArray m_sendData; FILE* fpFile = _wfopen(strFilePath, _T("rb"));//打开 if (!fpFile) return false; unsigned char* bytebuff = 0; fseek(fpFile, 0, SEEK_END);//读取 int file_len =
2011-12-07 11:53:26 671
Visual C++ 2008 feature pack 新特性的示例
2011-02-24
一个简单的图形处理应用(包含源码)
2011-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人