vc 2008开发outlook界面

fage87295970 2011-02-14 07:58:49
最近我需要做一个软件(开发工具是vc2008 带feature pack),我决定界面是这样设计的:多文档结构,客户区左端采用outlook风格的面板,视图区采用vs风格的。我知道可以在面板上AddButton或一些控件,可怎样像在对话框上自己自由摆放各种控件啊,我试过将一个Dialog加入(addTab),好像不行呢,恳请各位大侠指教一下,本人做界面比较少,关于这个feature pack,各位有些什么好的资料可供学习的么,向导生成的好多带CMFC头的函数都晕菜了。
另外,我在一个面板中加入了TreeCtrl,我写了自己的TreeCtrl,在OnEraseBkgd中用一个图片做为背景,可树文字背景还是白色的,怎么让背景是透明的啊。
...全文
615 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Sodo_ 2011-03-05
  • 打赏
  • 举报
回复
我到想来,可就是菜鸟一个,默默的支持你
taojielun 2011-03-04
  • 打赏
  • 举报
回复
用Directui开发蛮方便的,而且对技术要求不高,只需要对Directui进行操作就行了,可以去他们官网做详细了解。
http://www.directui.com
fage87295970 2011-03-03
  • 打赏
  • 举报
回复
唉,我发现现在csdn越来越不行了,牛人都不愿意来了
fage87295970 2011-02-25
  • 打赏
  • 举报
回复
谢谢楼上的,我试试
darenxiu 2011-02-22
  • 打赏
  • 举报
回复
用Directui不知道可以不可以,楼主可以去了解一下。
fage87295970 2011-02-20
  • 打赏
  • 举报
回复
继续求解。。。。
fage87295970 2011-02-19
  • 打赏
  • 举报
回复
我现在背景图片是出来了,可程序刚启动时,图片会闪两下,另外,当背景有被遮挡时,如果鼠标单击这个多文档任何地方,背景图片就会消失,当软件改变大小或背景重新被遮挡时,图片才会出来,当另一个程序在背景上移动时,被遮挡区域会闪烁。哪位达人指点一下。。。。
Formular1 2011-02-19
  • 打赏
  • 举报
回复
建议去codeproject/sourceforge上找一些开源项目,重新自己开发,周期太长。
fage87295970 2011-02-19
  • 打赏
  • 举报
回复
现在有个新的问题了,怎样给多文档主框架贴背景图片啊,我是这样做的:
先写一个类CMYMDIClient继承CWnd,在其OnEraseBkgnd()中加载背景图片,然后在CMainFrame::OnCreate中m_wndMYMDIClient.SubClassWindow(m_hwndMDIClient);(wndMYMDIClient是CMYMDIClient类的一个对象),这种方式在vc6中是可以的,可为什么在vc2008 sp1中不行呢,报错的地方是在wincore.cpp中的Attach()函数中的ASSERT(FromHandlePermanent(hWndNew) == NULL)。报错的原因是m_hwndMDIClient已经在permanent map中了,所以不能再对m_hwndMDIClient进行Attach了,可我不知道这是为什么,为什么在vc6中没有问题
于是,我采用另外一种方式,方法如下:用PreTranslateMessage(MSG* pMsg) 截获MDI客户窗口WM_PAINT消息,在这个函数中向主框架窗口发送WM_PAINT消息,在该消息的处理函数中实现彩色位图的显示。的具体实现如下:
1、向程序添加256色彩色位图资源,命名为IDB_BITMAP1;
2、用ClassWizard向主框架类添加函数CMainFrame::PreTranslateMessage(MSG* pMsg);
3、用ClassWizard向主框架类添加函数CMainFrame::OnPaint();
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{  
if(pMsg->hwnd==m_hWndMDIClient && pMsg->message==WM_PAINT)   
PostMessage(WM_PAINT);   
return CMDIFrameWnd::PreTranslateMessage(pMsg);  
}  
void CMainFrame::OnPaint()  
{   
CDC dc, memdc;   
dc.m_hDC=::GetDC(this->m_hWndMDIClient);   
CRect rect;   
CBitmap bitmap;   
BITMAP szbitmap;   
bitmap.LoadBitmap(IDB_BITMAP1);   
bitmap.GetObject(sizeof(BITMAP),&szbitmap);   
CSize size(szbitmap.bmWidth,szbitmap.bmHeight);   
memdc.CreateCompatibleDC(&dc);   
CBitmap *oldbitmap=memdc.SelectObject(&bitmap);   
GetClientRect(&rect);   
StretchBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(), c.m_hDC,0,0,size.cx,size.cy,SRCCOPY);   
memdc.SelectObject(oldbitmap);   
memdc.DeleteDC();   
dc.DeleteDC();   
CMDIFrameWndEx::OnPaint();  
}
如上方式,可以显示出背景图片了,但有闪烁(怎么办),另外,当鼠标单击到电脑桌面的任务栏上后,多文档背景图片显示了,再单击又出现了。
请大侠们帮我指出下问题,十分感谢了!
shangdacl 2011-02-18
  • 打赏
  • 举报
回复
第三方库!如果是免费的 告诉我呗 正好最近我也在摸索 界面,有第三方库的话,不用自己写了,如果不方便贴出来的话 就发我邮箱吧 349157591@qq.com 我先谢你了 哈
[Quote=引用 9 楼 wylongg 的回复:]
vs2008 mfc带的那个bcg的包,基本上没有文档,但它提供了源代码,需要楼主自己看代码,不满足条件的,楼主可能还需要二次派生。要使用文档视图结构,就不要期望所见即所得,如果非要所见即所得,除了用dialog view,就是用第三方库了,我知道一个第三方库可以所见即所得,他们找过我,但我没必要为他们做广告。

至于outlookbar,如果楼主没能力自己开发,网上很多。十年前就炒炒起来了。……
[/Quote]
fage87295970 2011-02-17
  • 打赏
  • 举报
回复
问题基本实现了,找个时间总结下吧
freecodeMAN 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 fage87295970 的回复:]

问题基本实现了,找个时间总结下吧
[/Quote]

恭喜楼主,,,尽快发上来.
  • 打赏
  • 举报
回复
用VS做界面累死,用界面工具来做吧

哥,你懂的~
jackson35296 2011-02-16
  • 打赏
  • 举报
回复
自己看源代码吧
fage87295970 2011-02-16
  • 打赏
  • 举报
回复
可是我想我的CDockablePane固定地停靠着,不想它浮动还没实现,可不可取消那个右键显示的菜单
fage87295970 2011-02-16
  • 打赏
  • 举报
回复
我找到一个例子实现了面板功能了,http://www.cppblog.com/longzxr/archive/2010/11/07/132860.html
tompaz 2011-02-16
  • 打赏
  • 举报
回复
outlook可以同时打开好多个界面,关闭任何一个都不会导致其他的关闭,
例子里的是主界面关了,程序就退出了
Eleven 2011-02-15
  • 打赏
  • 举报
回复
VS2008SP1/VS2010的Samples里有例子程序吧
wylongg 2011-02-15
  • 打赏
  • 举报
回复
vs2008 mfc带的那个bcg的包,基本上没有文档,但它提供了源代码,需要楼主自己看代码,不满足条件的,楼主可能还需要二次派生。要使用文档视图结构,就不要期望所见即所得,如果非要所见即所得,除了用dialog view,就是用第三方库了,我知道一个第三方库可以所见即所得,他们找过我,但我没必要为他们做广告。

至于outlookbar,如果楼主没能力自己开发,网上很多。十年前就炒炒起来了。应该有多种选择。但我还是推荐microsoft的。
fage87295970 2011-02-15
  • 打赏
  • 举报
回复
谢谢啊,我也在慢慢摸索。就是msdn里的资料也很少
加载更多回复(7)

15,980

社区成员

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

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