- 博客(21)
- 资源 (16)
- 收藏
- 关注
原创 将控件关联的变量值传递到另外一个类中的方法
今天在修改V1.1的一个bug:当向一个场景中加入已存的模型时会提示模型已存在,要求更改模型名称。 具体步骤如下:1、新建一个对话框,ID为:IDD_RENAME,在此对话框中添加一个Edit控件,控件ID为:IDC_Rename,按住Ctrl+W打开向导,为此对话框添加一个新类:CRename,同时关联一个CString类型的变量:m_rename.2、在Rename.cpp中添加:CRename* pRename; //作用:为向其他类中传递控件变量值同时在其构造函数中添加:pRename=thi
2010-12-29 16:51:00 2931
转载 VC++ 6.0的一些使用技巧---IDE的使用
1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To
2010-12-28 14:41:00 422
原创 Tab Control控件的详细使用
<br />1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.<br />2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl.<br />3. 在对话框的初始化函数OnInitDialog里面添加如下代码:<br /><br
2010-12-27 16:03:00 414
原创 添加中文菜单项出现乱码的解决办法
ResourceView> > > 选择Menu文件夹下面的文件,右键> > > properties> > > 弹出Resource设置,在Language项选择为Chinese[P.R.C],同时在Caption中加入&中文菜单名(必须要添加&,否则仍出现乱码)。
2010-12-24 14:22:00 794
转载 菜单响应函数:ON_COMMAND和ON_UPDATE_COMMAND_UI,ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE
一、ON_COMMAND ON_COMMAND(id, memberFxn )Parameters:id ---------------------------------The command ID. //菜单定义的资源IDmemberFx
2010-12-24 13:59:00 803
转载 CFile和CStdioFile的文件读写使用方法
CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,
2010-12-20 11:08:00 379
转载 VC中使用GetModuleFileName获取应用程序路径
<br />.//与API函数GetModuleFileName获取应用程序目录有何不一样?采用.//也能获得应用程序目录,采用GetModuleFileName也能获得,二者有何不同?一样!<br />一个是相对路径,一个是绝对路径.//是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的。<br />GetModuleFileName()得到模块的完整路径名,例如,你载入c:/windows/system32/
2010-12-15 16:40:00 613 1
转载 Setimer和Ontimer的使用
<br />关于OnTimer()函数的填写,对于CDialog,可以Ctrl+W中添加;<br />对于SetTimer可以在初始化当中添加!<br />OnTimer()函数是响应用SetTimer()函数设定的时钟发送的时钟消息的,你没设定时钟,就不会有时钟消息,OnTimer()里的语句当然也不会被调用。<br />为类添加VM_TIMER消息响应,会看到类中多了个OnTimer(UINT nIDEvent)。 <br />然后用SetTimer(1,10,NULL)就行了。第一个参数是ID,第
2010-12-15 16:01:00 570
转载 在MFC类中各种类的指针的获取和应用
获得CWinApp获得CMainFrame获得CChildFrame获得CDocument获得CView在CWinApp中 AfxGetMainWnd()m_pMainWndAfx
2010-12-13 15:38:00 385 1
转载 setsockopt()改善程序的健壮性
<br /><br />1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));<br />2. 如果要已经处于连接状态的soket在调用closeso
2010-12-09 16:52:00 337
转载 WSASocket()和socket()两个函数的区别
<br />winsock是socket的windows平台的实现。winsock是微软专门为windows操作系统开发的socket网络编程接口,而socket是通用网络编程接口。<br />socket() 函数创建一个通讯端点并返回一个套接口。但是在socket库中例程在应用于阻塞套接口时会阻塞。WSASocket()的发送操作和接收操作都可以被重叠使用。接收函数可以被多次调用,发出接收缓冲区,准备接收到来的数据。发送函数也可以被多次调用,组成一个发送缓冲区队列。可是socket()却只能发过之后等待
2010-12-09 16:46:00 782
原创 MFC中新建类在classview中没有显示问题
方法一:删除.ncb文件,关闭VC再重启 方法二:把工程目录下的Debug和Release文件夹删除,再删除.dsw .ncb .aps .plg .opt positions .clw这些无用文件再重新打开工程.dsp,再按CTRL+W打开类向导,会提示加载类,你随
2010-12-09 13:46:00 1612 1
原创 Setting the Background Image for a List Control
1、新建一个对话框工程,在对话框中添加一个list控件,ID:IDC_LIST1。打开MFC ClassWizard,点击Add Class按钮添加新类CListNew,Base class:CListCtrl,同时为list控件关联控件变量,变量名为:m_RecordList,变量类型为:CListNew。2、在listNew.h构造函数中添加:public: SetBkImageNew(CString strImagePath);
2010-12-09 11:13:00 483
转载 初识GDI、GDI+
<br />GDI在Windows中定义为Graphics Device Interface,即图形设备接口,是Windows API(Application Programming Interface)的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。它的桥梁作用体现在: (1)用户通过调用GDI函数将逻辑空间的操作转化为具体针对设备驱动程序的调用。 为实现图形设备无关性,W
2010-12-08 20:01:00 486
原创 屏幕监控中捕获鼠标位置信息
<br />server端:<br />在server.h中声明:void DispatchWMMessage(char *szString);<br />server.c中添加 void DispatchWMMessage(char *szString)(1、拷贝client.c中的DispatchWMMessage函数(因为客<br />户端中的DispatchWMMessage函数中将原dwX = (DWORD)iX;dwY = (DWORD)iY;修改为dwX = (DWORD)iX+12;dwY
2010-12-08 17:14:00 1145
原创 淡入BMP图片
<br />要求:打开登录对话框时,登录图片慢慢显示出来<br />方法:1、在工程中添加Splash.h及Splash.c文件<br /> 2、在Login.cpp中添加#include "Splash.h" (Login时需要淡入图片)<br /> 3、在OnInitDialog()函数中添加:CSplashWnd::ShowSplashScreen(this);<br />
2010-12-08 10:08:00 366
原创 释放动态申请的内存
case1:在多个文件都用到的动态申请的变量放在App中的ExitInstance()函数中进行释放case2:如果动态申请的是结构体类型,则使用delete xx;进行释放case3:要进行内存释放的App文件中需包含动态申请内存定义的头文件eg:在selfDefine.cpp中定义:usrLogin_t *uLogin = new usrLogin_t;释放内存时应按如下操作:在工程名.cpp文件下添加#include "selfDefine.h"int CServerApp::ExitInstance
2010-12-06 16:54:00 620
转载 C++中指针和引用的区别
<br />指针和引用的区别<br /><br />(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. <br /><br />由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. <br /><br />String & rs = string1; <br /><br />由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是否有值.,而使用指针则需要测试其的有
2010-12-06 14:30:00 364
转载 星号的秘密
<br />1、乘法运算符 2、定义指针int *p = 0; 还是 int* p = 0;?后一种比较容易这样理解:定义了一个变量p,它是指针型的(更详细一点,是指向int的指针型),相比而言,前面一种定义似乎是定义了*P这个奇怪的东西。但是后面一种写法会带来一个容易产生的误解:int* p1, p2;这儿给人的感觉似乎是定义了两个指针型变量p1和p2,但是,事实上,这种直觉是错误的,正确的理解方式是int *p1, p2;即p1是指针型的,而p2确是整型的。在MS VC++ 6.0中,是按照后面一种格式
2010-12-06 09:41:00 506 1
转载 浅谈C++中的LPVOID类型
LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候在转换回来。 例如: <br />class CMyClass<br />{<br /> void Start();<br /> static UINT StartThread(LPVOID lParam);<br />};<br /><br />void CMyClass::Start()<br />{<br /> AfxBeginThread(StartTh
2010-12-02 14:38:00 23466
转载 VC多线程编程
<br />VC中多线程使用比较广泛而且实用,刚在网上看到的教程.感觉写的挺好. <br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: <br />void CSingleThreadDlg::OnSleepSixSecond() <br />{<br /> S
2010-12-01 16:06:00 565 1
linphone3.5.2在VS2008上编译包
2016-03-17
linphone3.5.2在VS2008上编译
2015-01-12
读取ini文件操作源代码(测试可用版)
2010-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人