VS2010 + MFC 学习心得

1,MFC::CString 和int相互转化:

CString str = _T("123");

int i = _ttoi(str);

===============

int i = 123;CString str ;

str.Format(_T("%d"), i);


2,VS2010中const char* 与LPCTSTR 类型不匹配问题:

例如:

MessageBox(szNameList,"人员");

 

改为:MessageBox(szNameList,_T("人员"));

原因:

unicode字符问题。2010工程默认是宽字符版本

解决方法:
菜单 项目 -> 属性 (打开属性页) -> 配置属性 -> 常规 -> 字符集  
单前选中的应该是“使用Unicode字符集”,改为“使用多字节字符集”


3.关于解决VS2010 MFC中button控件与控制变量的关联问题

关于解决VS2010 MFC中button控件与控制变量的关联问题???
2011-07-04 15:00

在VC6.0中。。。(当然你有很多很多关于不标准啊之的话来骂这个昔日的编译器,但是在MFC上,它做的还是很好的),我们很容易对于一个button控件关联一个控制变量。这个控制变量可以是CButton,也可以使派生自CButton的。。

但是到了VS2010中,我们发现当我们建了一个派生自CButton后,ClassWizard不能让我们把一个Button控件关联自这个派生出来的。。。具体为什么。。。还请各位大牛指示。。。

我的方法是手工加入关联。。。

在函数DoDataExchange中调用

DDX_Control(pDX, IDC_BUTTON, m_btn);


4,用OnCreateClient进行视窗切割,运行 m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView), CSize(rect.Width()/4,rect.Height()), pContext)总是显示 Debug Assertion Failed(CLeftView 继承CFormView 捆绑一个 Dialog)


将 Dialog 的Style由Popup 改为 Child就OK了

编写一个如示例WinMain的Windows应用程序,其中窗口的背景色、光标、图标等属性可以设置成自己喜欢的风格。作为该示例的扩展,要求编程实现当在该窗口中单击右键时,播放一曲自己喜欢的音乐。(4学时) 编写一个如示例ExDlgCtl的MFC对话框应用程序,其中必须实现的功能包括: “对话框”菜单下的模态对话框、非模态对话框和文件对话框; “控件”菜单下的计算器、动态创建按钮、上网问卷调查、调整对话框背景色等四个对话框。 示例中的其它功能可以根据实际情况决定是否编写。(4学时) 3)编写一个如示例ExMenu的MFC菜单、工具栏和状态栏的应用程序,编写该实验时注意功能的完整性,包括两个菜单的切换、右键弹出式菜单、工具栏的切换、状态栏信息格的添加等功能。(4学时) 4)编写一个如示例ExDraw的MFC绘图应用程序,实现画点、线、矩形、椭圆等图形,并可以根据用户选择的画笔和画刷进行绘制,最后要求实现画笔的功能。(4学时) LRESULT CALLBACK WinProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // pointer to command line int nCmdShow // show state of window ) { WNDCLASS wndclas; wndclas.cbClsExtra=0; wndclas.cbWndExtra=0; wndclas.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wndclas.hCursor=LoadCursor(NULL,IDC_ARROW); wndclas.hIcon=LoadIcon(NULL,IDI_EXCLAMATION); wndclas.hInstance=hInstance; wndclas.lpfnWndProc=WinProc; wndclas.lpszClassName="ABCD"; wndclas.lpszMenuName=NULL; wndclas.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndclas;); void CTestView::OnDialogModal() //模态对话框 { // TODO: Add your command handler code here CTestDlg1 dlg; dlg.DoModal(); } void CTestView::OnDialogModalless()//非模态对话框 { // TODO: Add your command handler code here CTestDlg2 *pd=new CTestDlg2(); pd->Create(IDD_DIALOG2,this); pd->ShowWindow(SW_SHOW); } void CTestView::OnDialogFile() //文件对话框 {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值