当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 问题:用JAVA实现一个对话框(无所谓是否模式),在VC++里调用,要求对话框模式显示!分析:由于用Java实现模式对话框需要JFrame父窗体对象,所以,只能在JAVA里构造一个非模式的对话框,给VC++调用。
 

 

 ·关于    »显示摘要«
    摘要:关于 _beginthread() 和 _endthread() 的学习体会 在看多线程网络编程时看到了这两个函数,于是查了一下 vs.net 2003 文档,试了试里面的例子并且改了改。beginthread 有两种调用形式:uintptr_t _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size,......
 ·windows窗口框架(api入门一)     »显示摘要«
    摘要:#include <windows.h>#include <stdlib.h>#include <string.h>//声明函数 //////////////////////////////////////////////////////////////////long winapi wndproc //消息处理函数 ( hwnd hwnd, uint ime......


让非模式对话框模拟模式对话框

问题:用java实现一个对话框(无所谓是否模式),在vc++里调用,要求对话框模式显示!分析:由于用java实现模式对话框需要jframe父窗体对象,所以,只能在java里构造一个非模式的对话框,给vc++调用.这样就要求在vc++里,将这个非模式对话框模拟成模式对话框.在vc++中,模式对话框与非模式对话框都是通过调用createdialogindirect()创建产生.模式对话框与非模式对话框区别在于:1.模式对话框将父窗体disable了.2.模式对话框有自己的消息循环.

解决:示例关键代码如下: 【程序编程相关:关于progma warning的小结

注意,虽然父窗体被disable了,但是父窗体仍然响应部分消息,例如wm_paint,当拖动父窗体上的模式对话框时,父窗体就响应wm_paint消息,绘制无效区域,擦去模式对话框上次覆盖父窗体留下的痕迹. 【推荐阅读:关于windows编程的一些心得

    trace("still\n"); } 【扩展信息:《循序渐进学用Visual C++ 6.

//测试对话框事件void cmainframe::ontestmodal(){    cstjni->getinstance()->showdlg();//通过jni显示java构造的非模式对话框    simulateblockdlgproc();//模拟阻塞的模式对话框处理 

//主窗体位置.大小.z-order顺序改变时调用void cmainframe::onwindowposchanged(windowpos far* lpwndpos) {    cframewnd::onwindowposchanged(lpwndpos);

    //当激活主窗体时,java dialog仍然在主窗体上面    hwnd hactivation = ::findwindow("sunawtdialog", "java dialog");    if (hactivation)        ::bringwindowtotop(hactivation);}


...   下一页
    摘要:5.1前,为了模拟一个程序的测试,从那个程序里copy出来一段代码,功能就是调用createwindow创建一个窗口;但是怎么也通过不了,createwindow老是返回null;查了msdn,上面的代码也基本一样,没找到任何问题,郁闷的要命。stdmethodimp csetready::init( long hinst){ hwnd s_wndpump = null; wndclass wc;......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE