rainbowzc

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

2007年5月31日

摘要: VC雕虫小技集(一)1,避免随机数相同,可以取当前时间,读文件,读任意内存(如未定义变量,有一定危险). CTime t = CTime::GetCurrentTime(); int n = t.GetMinute() * 60 + t.GetSecond(); while(n-- > 0) { rand(); } const int N = 100; int result = rand()%N;2, 字符串与数的转换sprintf,sscanf,其实还有其它许多函数,但只这两个函数是最容易记住的.因为它们和printf,scanf,fprint,fscanf的用法类似. char st 阅读全文
posted @ 2007-05-31 17:04 ct 阅读(302) 评论(0) 推荐(0) 编辑

摘要: (1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128GetModuleFileName(NULL,exeFullPath,MAX_PATH)(3) 如 阅读全文
posted @ 2007-05-31 15:44 ct 阅读(194) 评论(0) 推荐(0) 编辑

摘要: 程序员对于Windows程序中应该用_beginthread还是createThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。I.起因今天一个朋友问我程序中究竟应该使用_beginthread还是createThread,并且告诉我如果使用不当可能会有内存泄漏。其实我过去对这个问题也是一知半解,为了对朋友负责,专门翻阅了一下VC的运行库(CRT)源代码,终于找到了答案。II.CRTCRT(C/C++RuntimeLibrary)是支持C/C++运行的一系列函数和代码的总称。虽然没有一个很精确的定义,但是可以知道,你的main就是它负责调用的,你平时调用的诸如strl 阅读全文
posted @ 2007-05-31 15:32 ct 阅读(201) 评论(0) 推荐(0) 编辑

摘要: [前言:]有好的界面软件就成功了一半,本文将向您介绍怎样设计一些有“稀奇古怪”形状的窗体,如何设定窗体的颜色、如何设置任务栏和状态栏以及菜单图标等等,通过这些技巧能更深入的理解VC的文档-视图结构。 如何制作透明窗体 使用SetLayeredWindowAttributes可以方便的制作透明窗体,此函数在w2k以上才支持,而且如果希望直接使用的话,可能需要下载最新的SDK。不过此函数在w2k的user32.dll里有实现,所以如果你不希望下载巨大的sdk的话,可以直接使用GetProcAddress获取该函数的指针。 SetLayeredWindowAttributes的函数原型如下:B... 阅读全文
posted @ 2007-05-31 15:31 ct 阅读(391) 评论(0) 推荐(0) 编辑

摘要: 在MFC中有时需要自己Create控件,如何写一个可以响应消息的控件呢,例如:CStatic 如下:CStatictest;test.Create("mystatic",WS_CHILD|WS_VISIBLE|SS_CENTERIMAGE|SS_NOTIFY,CRect(1,3,90,90),this,IDC_STA_TEST);ON_BN_CLICKED(IDC_STA_TEST,OnTest)就可以了 阅读全文
posted @ 2007-05-31 13:52 ct 阅读(989) 评论(0) 推荐(0) 编辑