context menu in contacts,第一次启动问题

lenux 2004-09-13 11:21:50
我用Smart phone 平台,在点击contacts后,出现一个menu,我在该menu上添加了自己的一个context menu。
用IContextMenu and IObjectWithSite接口实现的。在该dll中激活我的程序
CreateProcess(_T("\\Storage\\windows\\myapp.exe"), NULL, NULL, NULL, NULL, 0, NULL, NULL, &si, &pi);

然后在我的程序的OnActivate函数中要显示一个dialog,
CMyDlg dlg;
if (IDOK == dlg.DoModal())
{}

就这么简单。

但是有一个问题,每次开机后,第一次从contacts中启动我的程序,都是显示我的mainframe,不能出现我要的dialog,要按了手机上的“回退”按键,我要的dialog才显示。
然后以后从contacts中启动我的程序时,就能直接显示dialog。

我不知道怎么让第一次启动就能直接显示我的dialog

有没有兄弟做过类似的程序,谢谢啦
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lenux 2004-09-30
  • 打赏
  • 举报
回复
据说是老外的程序,现在人家不管了,要我们改,没办法啊,时间比较急。看来老外水平也这样,
就是做程序喜欢一些套路化的编程,好听点就是模块化的代码,到处搬来搬去,也不具体问题具体分析。除了速度快一点,现在看来没什么好处。
无聊客 2004-09-16
  • 打赏
  • 举报
回复
你为什么一定要在OnActivate里启动Dialog,进程创建以后启动不行吗?
lenux 2004-09-16
  • 打赏
  • 举报
回复
唉,这是别人的代码,要我改,命苦哦
无聊客 2004-09-13
  • 打赏
  • 举报
回复
把你的Dialog的父窗口置成mainframe看看,或者SetForegroundWindow
载舟之水 2004-09-13
  • 打赏
  • 举报
回复
呵呵,这就是你的不对了,你干嘛不直接建立dialog,何必留一个主窗口。
lenux 2004-09-13
  • 打赏
  • 举报
回复
气死人,第一次就是没有WM_ACTIVATE消息,只有WM_NCACTIVATE消息,想了半天只好把代码都在WM_NCACTIVATE中实现了。
也算交差了,不知道会有什么后遗症!!!
lenux 2004-09-13
  • 打赏
  • 举报
回复

我发现是第一次启动后,运行程序虽然主mainframe启动了,但是没有触发OnActivate。也就是没有收到WM_ACTIVATE。

而我的dialog是在OnActivate里面才调用。

我奇怪在第一次怎么会没有收到消息那??

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧