MFC一个小问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC一个小问题相关的知识,希望对你有一定的参考价值。
我将默认的on和cancel按钮删掉了,在执行时一按回车就关闭了。
我知道是OnOk函数的事,但我找不到这个函数了
请问如何找到这个函数或者重新生成该函数???
在线等,急急急!!!
然后在protected:灰色代码中加入
virtual void OnOK();
然后再cpp文件中清空函数体,OK! 参考技术A 将消息弹窗的由MessageBox(hwnd,szChar,"输入符",MB_OK);改为MessageBox(hwnd,szChar,"输入符",MB_OKCANCEL); 参考技术B 他是删除了两个按钮,函数应该还在,加上这两个按钮,然后将按钮ID改一下,或者改一下函数名称,应该可以吧? 参考技术C OnOK在 dlgcore.cpp中
void CDialog::OnOK()
if (!UpdateData(TRUE))
TRACE(traceAppMsg, 0, "UpdateData failed during dialog termination.\n");
// the UpdateData routine will set focus to correct item
return;
EndDialog(IDOK);
重载OnOk吧,比较简单
.h文件中
afx_msg void OnOK();
.cpp文件中
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//AFX_MSG_MAP(CTestDlg)
ON_BN_CLICKED(IDOK, OnOK)
//AFX_MSG_MAP
END_MESSAGE_MAP()
void CTestDlg::OnOK()
参考资料:http://apps.hi.baidu.com/share/detail/13665974
让 Cairo 图形与 MFC 一起工作的小例子?
【中文标题】让 Cairo 图形与 MFC 一起工作的小例子?【英文标题】:Small example on getting Cairo graphics to work with MFC? 【发布时间】:2009-08-25 13:05:08 【问题描述】:我有一些旧版 MFC 应用程序,我想使用 Cairo 绘图引擎添加一些图表。
我正在寻找一个如何让它发挥作用的小例子。基本上,一旦我创建了 PNG 或 GIF 文件,我如何让它显示在 MFC CView 窗口中?
我的 google-fu 没有找到任何好的线索。
【问题讨论】:
【参考方案1】:来自我的演示示例,
// cairo_surface_t *surface;
// cairo_t *cr;
// surface = call_win32_surface_create_with_dib_T(CAIRO_FORMAT_ARGB32, 240, 80);
// cr = call_create_T (surface);
// call_surface_write_to_png_T (surface, "hello.png");
HDC src = call_win32_surface_get_dc_T(surface); // <--------
BitBlt(dest, 0, 0, 240, 80, src, 0,0, SRCCOPY); // <--------
假设您已经有一个表面,您可以使用类似上述示例的方法。dest
是您要渲染 cairo 表面的窗口的 HDC
句柄。
更新: CView::OnDraw()
您应该为您的 CView(继承?)类实现 OnDraw() 方法。 可以使用pDC指针来绘制cairo曲面,即:
pDC->BitBlt(0, 0, 240, 80, src, 0,0, SRCCOPY); // "HDC src" is mentioned above
【讨论】:
您有更多示例的链接吗?我已经做了很多年的 MFC 编程,但只使用了简单的内置函数(对话框、菜单等)。上次我做图表时,我使用了一个库(ChartFX 98,如果它告诉你它是多久以前的),他们处理了所有的绘图。 @Eric H.,请参阅我的更新。我没有特定于 CView 的示例。如果您仍然需要有关如何使用 CView 对象或 Cairo API 的帮助,我可以找到一些示例,但目前还没有。以上是关于MFC一个小问题的主要内容,如果未能解决你的问题,请参考以下文章