如果调用其它程序??在线等待

zdy0155 2004-08-03 08:00:48
在我的主程序里,调用其他程序,显示时在最前面,总有各种问题,要是设成子窗体调用,就不刷新,要是发消息吧,有时后又没反应,没有一个好的方法,用失去焦点的方法,应为我调的是自己开发的ie ,弹出新窗体时,失去焦点,又不行,怎么才能
调用呢,最大小话,都和我的 主窗体一致!!!!!!!
...全文
131 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
if(Message.message == WM_PAINT)
{
::TranslateMessage(&Message);
::DispatchMessage(&Message);
}
这儿可以允许更多的消息
回复
要是设成子窗体调用,就不刷新, 这样就可以刷新了
----------
STARTUPINFO startupInfo;
memset(&startupInfo,0,sizeof(STARTUPINFO));
startupInfo.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION ProcessInfo;


BOOL bCreate = ::CreateProcess
(NULL,
(char*)(LPCTSTR)sCommand,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&startupInfo,
&ProcessInfo);

if(bCreate==FALSE)
{
AfxMessageBox("加载不成功!");
return;
}



WaitForInputIdle(ProcessInfo.hProcess, 1000);
//以下一段实现堵塞:除了继续相应刷新界面消息外,不再相应其他任何消息
MSG Message;
DWORD ExitCode ;
::GetExitCodeProcess(ProcessInfo.hProcess,&ExitCode);
while(ExitCode==STILL_ACTIVE)
{
if (::PeekMessage(&Message,NULL,0,0,PM_REMOVE))
{
if(Message.message == WM_PAINT)
{
::TranslateMessage(&Message);
::DispatchMessage(&Message);
}
}
::GetExitCodeProcess(ProcessInfo.hProcess,&ExitCode);
}
回复
zdy0155 2004-08-12
怎么调用excel 保存成html???? ??
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;

CComVariant FileName(_T("C:\\2.html")); //文件名
CComVariant FileFormat(8); //重点,看下面的说明
CComVariant LockComments(false),Password(_T(""));
CComVariant AddToRecentFiles(false),WritePassword(_T(""));
CComVariant ReadOnlyRecommended(false),EmbedTrueTypeFonts(false);

CComVariant SaveNativePictureFormat(false),SaveFormsData(false);
CComVariant SaveAsAOCELetter(false);



if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}
ExcelApp.SetVisible(true);
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("c:\\test.xls")));
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//wbMyBook.SaveAs(COleVariant(),FileFormat,covOptional,covOptional,covOptional,covOptional,0, covOptional,covOptional,covOptional,covOptional); ??参数怎么设置啊???


wbMyBook.SaveAs(FileName,FileFormat,LockComments,Password,
AddToRecentFiles,covOptional,1,
EmbedTrueTypeFonts,SaveNativePictureFormat,SaveFormsData,
SaveAsAOCELetter);
//AfxMessageBox("asdf");
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();

//ExcelApp.Quit();
ExcelApp.ReleaseDispatch();

回复
lizmei001 2004-08-03
字窗口应该可以
回复
holyeagle 2004-08-03
只要你有了子窗口的handle,可以发消息啊。可能你是得到消息做处理,处理过程中又发消息,这样消息队列被阻塞了。用
PeekMessage()
GetMessage()/TranslateMessage()
DispatchMessage()
进行一下消息分发试试
回复
zdy0155 2004-08-03
CWnd *pl=this->FindWindow(NULL,"ff");


if(pl)
{
this->ModifyStyle(WS_POPUP ,WS_CHILD|WS_GROUP);
this->SetParent(pl);


}
我这么设,子窗体没有焦点,控件都没焦点,但按钮有焦点为什么??
回复
liagn 2004-08-03
如果是子窗体的话,当你的主程序窗体最小化的时候,子窗体也会相应最小化呀。
回复
seilfer2000 2004-08-03
不太明白你的意思,不过你说的这个好像不太好实现吧,发消息为什么没反应?
回复
zdy0155 2004-08-03
兄弟们那么简单,我不就会了,不是简单的调用,要和我的主程序保持一致才行啊,
最大化了,最小化了,刷新的问题!
回复
Kudeet 2004-08-03
http://www.vckbase.com/document/viewdoc/?id=416
回复
悲酥清风 2004-08-03
WinExec,ShellExecute,createprocess
回复
hopen 2004-08-03
用CreateProcess这个函数,msdn上面有例子
回复
holyeagle 2004-08-03
楼主用什么方法调用的新程序?shellexec还是winexec,可以试一下shellexec,把主窗口设置成NULL或者用desktop。
回复
syy64 2004-08-03
winexe
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-08-03 08:00
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……