iCAx开思工具箱

标题: 【讨论】UG中真可以MFC?测试时,发现大问题。 [打印本页]

作者: 深夜摔键盘    时间: 2004-4-30 01:42
标题: 【讨论】UG中真可以MFC?测试时,发现大问题。
我测试AfxGetMainWnd函数,发现返回的是NULL。代码精简如下:
  
#include "stdafx.h"
#include<uf.h>
#include<uf_ui.h>
extern "C" DllExport  void ufusr(char *param,int *returnCode,int rlen)
{
    CWnd *p_Wnd=AfxGetMainWnd();
   
          UF_initialize();
    if(!p_Wnd)
    uc1601("failure",1);//测试时,发现p_Wnd是空指针。
         UF_terminate();
}
  
extern "C" int ufusr_ask_unload(void)
{
  return(UF_UNLOAD_UG_TERMINATE);
}
作者: 深夜摔键盘    时间: 2004-4-30 01:44
我是直接创建的MFC DLL工程。
作者: dqy911    时间: 2004-4-30 09:13
我已经实现了呀,有什么问题就问我好了。
作者: 深夜摔键盘    时间: 2004-4-30 09:20
我只想知道为什么AfxGetMainWnd返回是空指针。
  
UG里的MFC对话框我也调用过。以前一直没注意AfxGetMainWnd的问题。
作者: 深夜摔键盘    时间: 2004-5-1 08:36
郁闷!
难道用过MFC功能的人们都能通过这个函数获取窗口指针?
UG的界面很可能不是MFC...而是WIN32API.
把MFC单独封装成DLL,导入UG中可以运行,但是却无法和UG主窗口取得联系,MFC和UG是分别独立的模块.通过共享数据可以实现和UG数据交换,但还是不能真正意义的MFC.
  
不知道我说的是不是.
作者: 深夜摔键盘    时间: 2004-5-1 23:54
UG中有一个函数是返回主窗口的句柄的,从这个函数更让人觉得UG中没有MFC结构, 只有WIN32API的影子.
  
UF_UI_get_default_parent
  
Return
This routine returns a void pointer which is the
Window to be used as the parent of user defined dialogs.
On Unix you must type cast this to a Widget. On NT you
must type cast this to an HWND.
作者: fourwood_0328    时间: 2004-5-2 19:16
在UG的二次开发中使用MFC提高开发效率应该是大势所趋了,不过深夜摔键盘所说的MFC与UG通讯不知道是何意?UG不是已经提供了比较丰富的函数库了吗?OPEN C++里面的类太少了!相比UG/KBE简直少的可怜了。
控制UG主窗口,感觉无此必要吧?
作者: 深夜摔键盘    时间: 2004-5-3 09:53
我觉得随着研究的深入, 二次开发将不会在局限于将软件的某些功能进行集成起来就OK了,还需要去增加UG没有的功能.
我发现很多人在UG中使用MFC时是为了用MFC对话框,在生成自己的对话框时,需要将自己的对话框作为UG的子窗口,只有这样才能是真正嵌入.许多人都用了AfxGetMainWnd函数来获取UG主窗指针,但是事实证明这是错误的!!!!!!!!
  
我不明白的问题就是既然这是错误的,为什么还有那么多人都在用呢?是抄袭,还是想当然认为这是正确的?帖子出来这许多天,也没有谁给出个说法了.
  
很失望!
作者: ugapi    时间: 2004-5-5 11:48
通过MFC来做UG界面其实不应该做得像你那么复杂,可以用简单的方法去实现啊
作者: fourwood_0328    时间: 2004-5-7 16:47
用UG做菜单和工具条,用MFC做对话框(UG下完全可以调用此类对话框,已经过验证),这样应该是完美的了。
获得UG主窗口句柄看不出有什么实际意义?用来改变UG原有的界面布局吗?到不如直接修改MENU文件来得快。
而且增加UG功能和获得主窗口指针没有任何必然联系啊?
作者: 深夜摔键盘    时间: 2004-5-7 22:09
既然是没有必要获取主窗指针,那么为什么你们还要在代码中使用AfxGetMainWnd函数?
作者: jaken99    时间: 2012-11-27 18:58
顶顶顶




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3