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一个小问题的主要内容,如果未能解决你的问题,请参考以下文章

Qt 选项卡小部件中的 MFC 控件

让 Cairo 图形与 MFC 一起工作的小例子?

用visual studio做MFC的时候一个小问题

如何从 VS2008 中的 C++ MFC 对话框中的日期/时间小部件中提取数据

vc++的mfc怎么控制窗口的最大小最小化还原

MFC 小问题 为啥书上可以这里却不可以的?书错,是书错吗?