vc中的N个问题。只要回答对本人有益处就给分。

刘布 运维人员  2001-07-29 06:44:45
在写一个东东(为了学习而写的)时碰到的问题。
1:如何单击右键弹出菜单?(比如在一个edit控件中对某个项目单击右键弹出菜单)
2:如何获得焦点和设定焦点?(怎么用参数函数)
3:如何给对话框中某个按纽添加加速键,(在基于对话框模式的程序中,
在资源编辑器里面没有的)
4:如何获得文件的大小。我查到一个GetFileSize函数,但是不知道怎么去用。
5:他的参数不是字符串(我已经得到了文件的名字和路径)
6:如何将两个CString合成一个。就是字符串的连接。用strcat好象不行。
ps:不要告诉我自己查msdn,因为我已经查过了。
...全文
66 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
刘布 2001-07-29
也许能够查到吧,不过当时实在是太累了。我看了一天书后(要考研究生),晚上9点开始写程序
直到第二天早上6点。于是只是把问题写下来了。随便问一下。怎么不能给分了。
给分的按纽怎么不见了?
回复
Mr_Bomber 2001-07-29
1、EDIT控件里弹出鼠标右键似乎不太可能的,因为EDIT控件有自己的右键菜单(个人意见)。
如果在对话框上弹的话,可以这样做:在资源编辑器里面编好菜单资源,在WM_RBUTTONDOWN的消息处理函数里面声明一个CMenu对象,,然后LoadMenu()或者LoadSubMenu(),再TrackPopupMenu(),好象这个函数就返回选定的菜单项的ID,不记得了,不好意思,您还得自己查查MSDN证实一下,呵呵。
2、CWnd类有这几个成员函数可以获得和设定焦点:SetFocus(),GetFocus().
3、你在CSDN上搜索一下把,应该有的,或者你可以查《程序员大本营》里的《VC大本营》,我在里面看到过,但是没怎么注意,原理不记得了。
4、GetFileSize应该是CFile类的成员函数(如果我记得没错的话),在保证CFile对象有效(已经打开并且与一个文件关联)时,直接用它就可以获得文件大小。
5、谁的参数?说清楚点嘛!
6、直接用CString类提供的操作符+=即可,比如:
CString s1,s2;
s1 = "hello ";
s2 = "World!";
s1 += s2;
ASSERT(s1 == "hello World!");

PS:这些问题绝大多数都在MSDN上面找到答案,在下想可能是你太粗心,没看见罢了。GOOD LUCK!
回复
Semigod 2001-07-29
第一个很容易,你先由CEdit派生一个新的CMyEdit,并在这个类中处理OnContextMenu()就行了。使用时在你的程序中加入CMyEdit m_myedit;并在你的程序的OnInitDialog()中加入m_myedit.SubclassDlgItem(ID_EDIT1);

对于文件大小,你可以先打开这个文件,然后调用file.GetLength()就行了。
两 个CString 合成一个? 下面这种就行了:
CString s1, s2;
s1 = _T("sfa"); s2 = _T("sdfasd");
s1+=s2;
这样不就合成一个并存放在s1中了吗
回复
hncdsun 2001-07-29
6:用一个中转吧
char strTemp[1000];
CString str1,str2;

str1="hello ";
str2="!";

strcpy(strTemp,str1);
strcat(strTemp,str2);

至于变成一个CString的就。。。。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-29 06:44
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……