近期在论坛上的回复集锦

sjdev 2010-03-04 09:13:31
近期我在论坛上的回复集锦


首先强烈建议你看看我博客上的文章http://blog.csdn.net/sjdev/archive/2010/03/04/5347016.aspx那里的格式比这好点.

读高中的时候,我的数学老师经常对我说“花很短的时间总结一下,你往往会有很大的收获”。虽然10多年过去了,老师的这句话我还依然记在心头。于是我也时常对自己说“花个时间总结一下,你会有很大的收获”。09年底时本打算在春节期间抽个时间把以往有用的东西好好整理一下,结果过年的时候发现自己大部分时间在外地。也罢,我就在平时抽个空写点东西吧。

1.在OnPaint里用CTime::GetCurrentTime获取到系统时间不随系统时间变化的原因是什么?
答:程序是不会自动刷新的,需要在OnTimer中进行处理。

2.请问如何用edit自动转换输入的进制数,比如我输入16进制的数字,按确定后就转成10进制。
答1:CString str;
int iVal;
GetDlgItemText(IDC_EDIT1, str);
sscanf(str, _T("%x"), &iVal);

答2:CString str;
int iVal;
GetDlgItemText(IDC_EDIT1, str);
iVal = _tcstoul(str, NULL, 16);

str.Format(_T("%d"), iVal);
SetDlgItemText(IDC_EDIT1, str);

3.使用Image image(L"sunflower.jpg");,程序报错是怎么回事?
答:一、确认一下文件路径;2.需要对gdi+环境初始化:
定义成员变量
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;

程序启动时:
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);

程序退出时:
GdiplusShutdown(m_pGdiToken);

4.链接错误
答:链接错误是因为链接器找不到相应符号的实现,一般是缺少c/cpp文件,或缺少lib库.对于缺少c/cpp文件的,把文件加入到工程中;对于缺少lib库的,在链接选项中添加相应lib或加入预处理指令 #pragma comment(lib, "yourlib.lib")

5.如何判断字符串中有多少个字?一个字母,空格,一个汉字都算一个字。
答:使用下面的代码试试
int GetTotal(CString Feedback)
{
char* buf = new char[Feedback.GetLength()+1];
int i=0, n=0;
unsigned char p;
memset(buf, 0, Feedback.GetLength()+1);
sprintf(buf, Feedback);
while(n<Feedback.GetLength())
{
p = buf[n];
if(p>0x7f)
i+=1;
n++;
}
delete [] buf;
return Feedback.GetLength()-i+i/2;
}

6.VS2008,如何才能不使用#include “stdafx.h”
答:可以在工程属性中设置,选择不使用预编译头.

7.vc2005中找不到msflexgrid控件.
答:工程->右键->添加类->activex 中的mfc类->combobox列表中选 microsoft flexgrid control v6.0

8.vc2008中CTime::Format函数的问题.
CTime t = CTime::GetCurrentTime();
CString str1=t.Format("%Y年%m月%d日 星期%w);
在VC2008中,str1为空,去掉中文就得到正确值,VC6中没这问题,怎么回事?
答:#include <locale.h>
_tsetlocale(LC_ALL, _T( "Chinese-simplified"));
CTime t=CTime::GetCurrentTime();
CString str1=t.Format("%Y年%m月%d日星期%w");

9.浏览文件对话框如何创建?
答:CString str;
BROWSEINFO bi;
char name[MAX_PATH];
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner=GetSafeHwnd();
bi.pszDisplayName=name;
bi.lpszTitle="Select folder";
bi.ulFlags=BIF_USENEWUI;
LPITEMIDLIST idl=SHBrowseForFolder(&bi);
if(idl==NULL)
return;
SHGetPathFromIDList(idl,str.GetBuffer(MAX_PATH));
str.ReleaseBuffer();

10.exe形式的com组件在.net下可以调用吗?如何调用?
答:添加引用,然后在对象浏览器中可以看到.net为我们生成的包装类。
AxcomnameClass obj = new AxcomnameClass();
如果是clr的话,使用托管指针comnameClass^ obj = gcnew comnameClass();

11.Wince下不支持GetModuleFileNameEx,如何获取其他程序的路径?
答:据说GetModuleFileName可以得到,用Process ID作为参数,调用 GetModuleFileName((HMODULE) dwProcessID, tzPath, MAX_PATH) ,要不你试试?

12.电脑一直都能注册debug版的xx.ocx,但突然现在就不行了。出现LoadLibrary(xx.ocx)失败 - 一个或数个参数无效。为何出现这种情况?
答:查看一下依赖库

13.MFC如何显示各种常见格式图片?
答:使用gdi+的Image或ATL的CImage(vc6不支持)。

14.vc9(vc2008)中如何添加组件和控件?
答:一、可以在工具箱中点击右键->选择项,然后可把相应的组件放置到工具箱中,
使用的时候像常规控件那样拖拽就行了;二、解决方案视图->添加类->tlb中的mfc类,或activex中的mfc类。

15.如何把彩色图像变成灰度图像?
答:参看http://blog.csdn.net/sjdev/archive/2010/01/23/5249373.aspx

16.有什么方法可以在桌面上像桌面歌词一样textout出文字来?
答:桌面歌词不是直接在桌面上画的,应该是在一个透明的窗体上绘制的。
参看代码http://download.csdn.net/source/1707118

17.如何将61秒让,以00:01:01的格式输出?
我使用代码
CString str;
str.Format("%d:%d:%d",hour,minute,second);
pDC->TextOut(str);
这样做的话输出 0:1:1 和标准格式不一样
答:给你个标准答案,一般人我不告诉他:
CTime tm(61);
CString tmp = tm.FormatGmt(_T("%H:%M:%S"));

18:在mfc扩展dll中使用::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1))加载失败。
答:不要使用AfxGetInstanceHandle,把DllMain中的hInstance缓存一下传递过去。

19:vc2008如何打开内存查看窗口?我在调试->窗口菜单中没找到。
答:在调试状态下,找找看。

20:char ans[128]; 被赋值后如何再次初始化?
答:方法很多,memset,strcpy等。如果你只是想简单地把它置空,可以 *ans = 0;

注:只选取了一部分论坛回复。部分回复答案的正确性有待验证,希望这些东西能对你有帮助。如果哪个地方有错误,可以在我的博客留言,我会及时修正,以免误导大家

党内同事近期都在散发,我觉得,分就应该这么散撒.
...全文
303 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dingnifei123 2010-03-07
  • 打赏
  • 举报
回复
引用 26 楼 r3000 的回复:
支持楼主每月来一次,量多的时候请用护舒宝。
  • 打赏
  • 举报
回复
我只会学习,接分:学习没学会,接分接不多;也满足.呵呵... ...
yxwsbobo 2010-03-07
  • 打赏
  • 举报
回复
jf
zgsdzhaolanxiang1 2010-03-07
  • 打赏
  • 举报
回复
楼主辛苦了 、
昵称很不好取 2010-03-07
  • 打赏
  • 举报
回复
up~~~~~~~~~~~
hzy694358 2010-03-05
  • 打赏
  • 举报
回复
引用 5 楼 tr0j4n 的回复:
很早之前想整个《Tr0j4n in CSDN》系列,可惜。。。太累了。


那得从什么年头开始?
兔主席是什么时候毕业的
康斯坦汀 2010-03-05
  • 打赏
  • 举报
回复
支持楼主每月来一次,量多的时候请用护舒宝。
密斯刘 2010-03-05
  • 打赏
  • 举报
回复

学习
Eleven 2010-03-05
  • 打赏
  • 举报
回复
Up,来接分的。。。。。。。。。。
ljz888666555 2010-03-05
  • 打赏
  • 举报
回复
不 错。
jinlingzwp 2010-03-05
  • 打赏
  • 举报
回复
JF
回复内容太短了!
cpp2017 2010-03-05
  • 打赏
  • 举报
回复
这是个不错的办法。支持。
Cain0 2010-03-05
  • 打赏
  • 举报
回复
最近也开始记笔记了,刚开始问题都比较菜,一年后也挑点贴上来
nzc123 2010-03-05
  • 打赏
  • 举报
回复
呵呵,每天回复,能得到10分可用分。
peachbrandy1 2010-03-05
  • 打赏
  • 举报
回复
新人接分..............
Wenxy1 2010-03-05
  • 打赏
  • 举报
回复
这是技术贴,支持做技术总结。
雪影 2010-03-05
  • 打赏
  • 举报
回复
接分了~~~~
回复内容太短了!
zhuweiping2003 2010-03-05
  • 打赏
  • 举报
回复
顶 关注ing。。。。。。。。。。。。。。
cdsnpeter 2010-03-05
  • 打赏
  • 举报
回复
接分 谢谢秘书长。。秘书长辛苦了。。。
smneo 2010-03-05
  • 打赏
  • 举报
回复
jf....................................
加载更多回复(14)

1,660

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧