博文

CGridCtrl在VS2008下的使用问题(2009-09-21 11:30:00)

摘要:VC的控件里面是有GridCtrl的,我为了找到扩展性强的,在codeproject上随便下了个控件玩一玩,但是发现VC下CGridCtrl用的好好的,为什么到了VS2008下就用不了了呢?只要一创建就会报错,到底是哪里出了问题?   查看了资料,看看国外友人的解决办法:   I had the following problem with the 2.26 version.

I build an application with VS2008 and 2.26 gridctrl.
When i wanted to run the program on an XP box, the grid did not display correct.
There was no text, and the columns where very big.

I found in this message area a remark.
So i change CGridDefaultCell::CGridDefaultCell()

changed :
ncm.cbSize = sizeof(NONCLIENTMETRICS);
into :
ncm.cbSize = sizeof(NONCLIENTMETRICS) - sizeof(ncm.iPaddedBorderWidth);

After this things worked.

I think this is a bug. 参考资料: 1、http://www.cppblog.com/jerysun0818/archive/2007/05/08/8965.html 2、http://69.10.233.10/KB/miscctrl/gridctrl.aspx......

阅读全文(5366) | 评论:0

关于求异面线段间的最短距离(2009-09-21 10:11:00)

摘要:我们知道,异面直线的最短距离指的就是公垂线的长度,计算方法很多,还可以计算出最短距离点对。   但在有的应用中,需要求出异面线段的最短距离。区别在于,异面线段的最短距离不一定就是公垂线的距离。换句话说,异面线段的最短距离点对必须都落在每条线段里面,而不能在线段的延长线上。   那么假设,现在异面线段的最短距离点对没有落在每条线段里面,很显然,公垂线距离就不是最短距离了。该如何求解最短距离呢?实际上,只要我们求出线段的每个端点到另一条线段的最短距离,然后进行比较,最小者即胜出当选。   下面我们来从几何上证明这一点。 第一幅图中,PQ是线段AB和CD的公垂线。由于P,Q分别位于AB和CD线段内,因此PQ就是最短距离。由此我们也可以看出公垂线的一般做法。平移AB与CD相交得Q,从Q向P做垂线,得P。   再来看第二幅图。显然PQ不再是线段AB与CD的最短距离了,因为Q不在CD内。从几何上就可以看出,实际上AB上任一点U到CD上任一点V的距离UV都可以这样求得:设U在CD和A’B’构成的二维平面内的投影为U’,那么UU’,U’V和UV就构成了一个直角三角形。   ED的距离就是这样通过EE’和E’D求得的。由于EE’ (或者UU’)都是相等的,因此最短距离的问题转变为求最小U’V(E’D)的问题。即转化到二维平面上CD和A’B’的最短距离。这就比较简单了。如果CD和A’B’相交,那么最短距离为0,CD和AB的最短距离就是PQ;如果不相交,分别求出端点A’,B’到CD的最短距离和端点C,D到A’B’的最短距离,然后进行比较。当然实际求解中不用那么复杂,从图中可以看出,我们直接求解端点A,B到CD的最短距离和端点C,D到AB的最短距离即可。                因此结论就是: (1)       如果两条线段异面或相交,那么首先判断公垂线的最小距离点对是否分别在两条线段上。如果在,那么公垂线距离为最短距离,直接返回该值。 (2)       如果最小距离......

阅读全文(6120) | 评论:1

VA1709的问题(2009-05-31 17:24:00)

摘要:VA各个版本的区别还是蛮大的,有关一些版本的比较请参见: http://www.cnblogs.com/wondering/archive/2009/05/26/1489405.html 本文主要讨论VA1709的问题。 1、VA1709在VS2008下是可以使用的。 2、建议安装VC6.0前,首先卸载干净VA。还有一个要注意,在安装VC6之后,先不要急着安装VA,可以先打开VC6,按照自己的爱好调整一下默认设置。例如,调整源代码窗口的背景色和其他等。因为本人曾经试过,在安装VC6.0之后直接安装VA,然后打开,改变了源代码窗口的默认背景色为灰色,结果发现VA的关键字颜色再也不起作用了!......

阅读全文(2002) | 评论:0

VC快速Browse变量与函数的问题(2009-05-15 17:28:00)

摘要:        很多编程初学者都知道,要想知道一个变量或者函数的声明与定义,可以选中直接右击,弹出右键菜单,然后选择“Go to definition of ...” 或者 “Go to reference of...”。当然高手知道直接用快捷键F12 与 Shift + F12. 但是有时候这一招却不灵,比如弹出这样的提示“... is undefined”.         来说明一个原因。这个Browse与Find in Files不同。Find In Files直接找到所有的引用地方,而不进行分类,如是定义还是声明还是调用等。因此Browse需要专门的Browse Info文件(浏览信息文件)的支持。这是在编译时候生成的。对于一个工程中的每个程序文件,都可以生成一个sbr文件记录了这些信息。然后BSCMAKE工具会将所有的sbr合成为一个bsc文件。这里需要注意,sbr属于Intermediate File,而bsc属于output file。     为了确保是否工程生成bsc,需要在project settings里面切换到C/C++页,然后genereal选项,选择“Generate Browse Info”可以生成sbr,这样可以保证bsc的合成。另外在Browse Info页有“build browse info”项,是方便每次编译时会自动更新bsc文件。注意,生成sbr与bsc的过程会大大降低编译的速度。因此可以选择在生成bsc文件后不进行更新了,只用于浏览即可(只要不物理删除bsc文件)         当然上述的这种快速浏览变量和函数现在已经出现了替代的方法。例如安装了Visual Assist之后,让鼠标在选中变量或者函数名上停留几秒,就会弹出下拉箭头提示,然后单击可以弹出菜单,可以选择“Find references”来寻找相关。         还有一种笨方法就是直接去h或者cpp里面找了。可以利用visual Assi......

阅读全文(2706) | 评论:0

DAO VS ODBC(2009-04-11 21:44:00)

摘要:http://msdn.microsoft.com/zh-cn/library/ttc6chk1.aspx   DAO只能运行在32位机哦   用它来访问access数据库的朋友们要注意呀......

阅读全文(1580) | 评论:0

红军阿哥你慢慢走(最终、完整版)(2009-04-11 13:14:00)

摘要:
3 3 1 2 353
(女)啊呀勒 哎
63332  232 12 16 612221 216 16221666 3662 1 61766
红军阿哥你慢慢走勒  小心路上就有石头  碰到阿哥的脚指头  疼在老妹的心啊头  
63332  232 12 16 612221 216176 16221666 3662 1 61766
红军阿哥你慢慢走勒  小心路上就有石头  碰到阿哥的脚指头  疼在老妹的心啊头  
    33123 36665 665 36 3666 5 665 2 353 3 6 665 665 12
(男:)啊呀勒 红军哥哥你慢慢走勒 红军哥哥你慢慢走勒 红军哥哥你 慢慢 走勒  
62 2353  21 56
红军哥哥你 慢慢走勒  
    二
63332 232  1216 61222 26116 63361 6322 16  62266 122166
(女:)红军阿哥你慢慢 走勒  走到天边有七星头 老妹等你哟长相守 老妹等你哟到白头  
   123  36665   66536  66536  3665   6652353 1253 35665  665
(伴)到白头 红军哥哥你慢慢走勒 慢慢走勒 红军哥哥你慢慢走勒 走勒 红军哥哥你慢慢
12  66536  62 2353  21 56
走勒 慢慢走勒 红军 哥哥  慢慢走勒  

63332 232 1216 61221 666 63361 6322 16 62266 122166
(女:)红军阿哥你慢慢走勒 革命胜利哟你回头 老妹等你哟长相守 老妹等你哟到白头  
63361 6322 16 62266 122166
老妹等你哟长相守 老妹等你哟到白头 MV http://6.cn/watch/1471650.html......

阅读全文(3047) | 评论:0

推荐时钟软件(2009-04-11 09:18:00)

摘要:时钟日历] Atomic Alarm Clock(替换系统任务栏时钟)5.85多语言绿色特别版 该程序是 Clock Tray Skins 的姊妹软件,具有 Clock Tray Skins 的全部功能,可以替换/扩展 Windows 自带的任务栏时钟,显示的时间更加详细,包括月、日、时、分和秒,及日历显示、时区等,界面漂亮,支持换肤、时间同步,还具有提醒功能等。
皮肤下载:software.com/drivesoftwareskin.html">http://www.drive-software.com/drivesoftwareskin.html
修正了星期显示方式中选项颠倒的错误;
+修正了根据国际原子钟校正时间后标签显示不正确的错误;
+闹钟设置出错的问题。
保留闹钟参数显示时的部分单词,不作汉化,被非标汉化过渡搞崩溃的了……: 注:
1.时区前缀只能输入英文或拼音,不显示汉字! SN:CAOY-PWJS-YNHU-XKDJ-QUMV......

阅读全文(1749) | 评论:0

(转)有限元动态链接库编程中巧用抽象类(2009-03-30 20:05:00)

摘要:有限元动态链接库编程中巧用抽象类   动态链接库以dll为后缀,软件开发中采用动态链接库有利于开发时的分工、后期维护,以及防止代码泄密。有限元软件架构中,经常会将不同的功能划分为不同的模块,每个模块采用动态链接库来完成。如现有的有限元软件中,常常将计算模块以及图象显示模块设计为动态链接库,在界面程序中调用。 在动态链接库程序开发中,巧用抽象类常常可以起到举足轻重的作用。本文简单讲解在有限元程序开发时,如何在动态链接库中使用抽象类。       举个小例子说明:   制作有限元计算模块FemModel链接库,并在程序Main中调用FemModel链接库。   先看通常采用的方式,在VC6.0中新建FemModel链接库工程,建立有限元模型输出类FemModel,包含成员为节点数nPoint,函数ReadFile,其中ReadFile函数用来读取文件读取节点数。   //FemModel.h Class __declspec(dllexport) FemModel :   { public:   FemModel();   virtual ~FemModel();   void ReadFile(FILE* _ifile);//读取文件,设置节点数 private:   int nPoint; //节点数 }; FemModel.cpp内容略。       编译工程,生成FemModel.lib、FemModel.dll文件。 在程序Main中调用FemModel链接库时,需要在工程中导入FemModel.h文件,调用方式如下,   #include "FemModel.h" int main() {   FemModel iFem;   iFem. ReadFile(_ifile);   return 0; } 此时,问题就产生了。通常情况下,FemModel链接库和调用程序(程序Main)的开发者为不同的小组,若程序升级时,需要在FemModel类中加入新成员,例如单元数int nE......

阅读全文(2034) | 评论:1

如何改变VC中控件间的TAB切换顺序(2009-03-08 11:53:00)

摘要:  在VC中,
首先控件没有TABINDEX属性;

其次,如果你发现这可能是由resource.h中控件的ID值引起的。那么你就错了:
因为无论你如何调整resource.h中控件的ID值,都对TAB键的切换顺序不能发生任
何影响;

那么,VC中的控件顺序是由什么决定的呢?该如何来修改呢?
在你的工程文件和工作区文件所在目录下有一同名的资源文件(*.rc),其中包含了
本工程所有使用到的资源。
在VC集成开发环境中,该资源是以树状和可视的状态出现的。

现在用任意文本编辑器(最好就是记事本notepad.exe)将该资源文件打开;
找到DIALOG字段,在BEGIN...END语句之中就是对话框中所有的控件定义与属性描述;
假定你将其中先后出现的控件顺序改变一下;
然后保存该文件;
然后用VC打开,重新生成执行文件执行一下:
----怎么样?!!控件间的切换顺序已经改变了!!!

原来,VC中控件的TAB切换顺序即是资源文件中上述BEGIN...END间先后出现的顺序----
改变其中的控件出现顺序(在文本编辑器中)便可改变控件间的TAB切换顺序。......

阅读全文(4723) | 评论:0

PPT中《此演示文稿的一些控件无法激活,这些控件可能未在此计算机中注册》的解决办(2009-02-22 09:51:00)

摘要:有些课件内嵌flash,在打开含flash的PPT时常会出现《此演示文稿的一些控件无法激活,这些控件可能未在此计算机中注册》,而在家使用一切正常,到学校使用时才会较多出现这种情况。
原因是家中的电脑是可以上网的,在浏览一些网页时会自动给电脑安装Shockwave flash object最新控件(目前是flash_Player_active_x 9.0),而在教室中电脑往往是没有上过网的, Shockwave flash object控件版本太低了。
解决方法如下: 下载安装Install_Flash_Player_active_x 9.0
http://down.softyes.com/Download.asp?ID=249 安装后有时可能重启才有效。如果安装后还不行,再试试以下方法:     安装Install_Flash_Player_active_x 9.0 ,随后你启动PowerPoint,打开“控件工具箱”,选择“其他控件”下拉到底部“注册自定义控件”,在C:\WINDOWS\system32\ Macromed\Flash目录下去选择Flash9.ocx文件。(也可试试flash8.ocx)......

阅读全文(5568) | 评论:0