Posts filed under '技术文章'

解决MSFLXGRD/MSFLEXGRID未注册不能使用的问题

在使用MsFlexGrid做表格的时候,经常会发现一些电脑不能用这个控件。下面是解决这个问题的一些方法:

1.下载这个文件后运行,会安装一些控件。《文件1在此

2.如果第一个方法不能解决问题,下载这个注册表文件,会将一些东东添加进注册表。《文件2在此

3.如果上面两种方法都无效,那么请下载这个文件,将其放到文件夹C:\WINDOWS\system32中,然后“开始-->运行”中输入regsvr32 MSFLXGRD.OCX。regsvr32和MSFLXGRD.OCX之间有空格。《文件3在此

如果上述三种方法均无效,o(∩_∩)o...请继续google或百度或其他......

Add comment 06月 12th, 2008

安装 vs 2008

以前安装vs 2003一直很顺利,最近安装vs 2008真是费了好大的劲呀。每次安装到VSTO就失败了,失败后C#还是可以用的,但是C++的资源编译器用不了,说找不到rcdll.dll。

vs2008c

反反复复重装了好多次都没成功,也试过单独安装VSTO,提示说应用程序没有正确配置,要求重新安装应用程序。我以为它说的应用程序是指office2007,于是卸了重装,还是没用。最后跳过了VSTO的安装才把VS装上了。在VB.NET和C#里面都有安装VSTO的选项,把前面的勾都去掉就行了。

Add comment 06月 7th, 2008

VS 2008的大纲显示

以前安装的是visual studio 2003,觉得那个大纲显示的功能很好用(即可以点击函数名前的“-”号将函数收起隐藏)。
刚刚安装了visual studio 2008。新建了一个MFC程序后,发现只有函数是自动大纲显示的,而诸如if,for后面的语句块没有大纲显示,感觉很不方便。后来发现是可以设置的。
点击菜单上的“工具”-->“选项”。在对话框中选择“文本编辑器”-->“C/C++”-->“格式设置”。在将“语句块的自动大纲显示”选上。在VS2008中大纲显示这边有三个选项,而VS2003中只有一个选项,就是选择是否显示大纲。

vs2008
这样设置以后就可以自动显示大纲了,如下图。
vs20081

Add comment 05月 30th, 2008

vc中使用ADO删除access数据库记录出错的问题

最近一个程序需要记录一些操作记录到access数据库中,并且数据库表中的记录总数保持为100条。这就要求在保存操作记录时坚持表中的记录数,如果超过100条就将最前面的删除。
使用循环,逐条删除表中的记录,删除一条后使用MoveNext移动到下一条:

theApp.m_pRecordset->Delete(adAffectCurrent);//删除当前记录

要注意的是在打开数据库是加入这句话:

m_pConnection->CursorLocation=adUseClient;
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CS.mdb","","",adModeUnknown);

开始的时候我在数据库中手工加入了一些记录,发现可以正确删除,以为万事大吉了。可是运行了一段时间后,发现在删除一些记录时总是出错,不能正确删除当前记录。觉得代码应该没有错,于是检查了数据库,发现表中有些相邻的记录是完全一样的,就是说每个字段的值都是相同的,原因就在这边了。于是在表中新加了一个字段,类型为“自动编号”,这样可以保证每条记录都是不同的了。然后再运行,果然没问题了。

(后来想,有的人在加入多条新记录时也会经常出问题,也许原因是一样的,即加入了完全一样的记录。仅仅是猜测,没有试验过)

Add comment 05月 23rd, 2008

在对话框上显示指定大小视图,并移动到指定位置

本文内容参考了资料1和三变公子的博客资料2.

本文使用的方法在VC++.net 2003上调试通过。

今天下午要做个东西,在对话框上显示一个滚动视图,并在视图中绘制一些图像。
查了一些资料后觉得下述方法是可行的。

第一步,使用MFC向导建立了一个单文档的工程。新建一个对话框CMydlg,在头文件中定义CFrameWnd * m_pFrame。新建一个滚动视图CMyview,这时视图类的virtual void  OnInitialUpdate()函数是protected的,将其改为public,因为我们要在对话框中调用该函数。
第二步,在CMydlg::OnInitDialog()中加入下面的代码。
CCreateContext pContext;
CRect rectWndClient;
//得到对话框客户区大小
GetClientRect(&rectWndClient);
//下面是为了使视图框架比对话框小一些
rectWndClient.right-=45;
rectWndClient.top+=20;
rectWndClient.left+=45;
rectWndClient.bottom-=20;
m_pFrame= new CFrameWnd();
m_pFrame->Create(NULL,NULL,WS_VISIBLE|WS_CHILD,rectWndClient,this);
pContext.m_pCurrentDoc =NULL;//我们没有建立文档
pContext.m_pNewViewClass = RUNTIME_CLASS(CMyview);
CMyview *pView =(CMyview *) ((CFrameWnd*)m_pFrame)->CreateView&pContext);
ASSERT(pView);
pView->ShowWindow(SW_NORMAL);
//视图从框架左上角到右下角
rectWndClient.left-=45;//使得rectWndClient.left等于0
rectWndClient.top-=20;//使得rectWndClient.top等于0
rectWndClient.right-=45;
rectWndClient.bottom-=20;
pView->MoveWindow(rectWndClient);
pView->OnInitialUpdate();//不加这一句在鼠标点击视图时会报错的,原因请看资料2

好了,到这里就可以在对话框上看到你的视图了,你可以像平常一样在OnDraw里画图看看效果。

2 comments 03月 19th, 2008


RSS订阅

feedsky
google reader
抓虾
鲜果

公告

1.审查评论---- 本博客为个人空间,对评论进行人工审查。
2.转载文章---- 如转载文章,本博客将遵循“署名--非商业用途--保持一致”的创作共用协议。
3.联系方式---- 你可以在页面“关于”中找到我的联系方式。

广告

进入Google

进入微软

Windows Live Community

最新日志

分类

友情链接

学校链接