3827|5

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求问WINCE下开发WINAPI应用 关于WM_INITDIALOG [复制链接]

我想开发一个很简单的应用程序 a.exe,点击一下这个exe就能出现个界面上显示平台还有的电池电量。

非常简单的应用  我在解码中加个TEXT 控件
因为里面没有任何的按钮 因为我就像打开就能够在TEXT控件中显示这个数据
因此我就在 WM_INITDIALOG 响应的时候添加 具体的程序是:
BOOL powerInfo::WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
        BOOL brc = FALSE;
        RETAILMSG(1,(_T("WndProc \n")));
        switch ( uMsg )
        {
        case WM_INITDIALOG:
                RETAILMSG(1,(_T("WndProc::initial \n")));
                mRootElement = (IElement*) lParam;
                OnInitDialog();
                LPCTSTR secbaper;
                break;
case WM_VIEWELEMENT:
                RETAILMSG(1,(_T("WndProc::VIEWELEMENT \n")));

                break;

        case WM_CLOSE:
                RETAILMSG(1,(_T("WndProc::WM_CLOSE \n")));
                OnCloseDialog();
                brc = FALSE;
                break;

        case WM_COMMAND:
                RETAILMSG(1,(_T("WndProc::WM_COMMAND \n")));
                brc = OnCommand( LOWORD( wParam ), HIWORD( wParam ), (HWND) lParam );
                break;

        case WM_NOTIFY:
                RETAILMSG(1,(_T("WndProc::WM_NOTIFY \n")));
                brc = OnNotify((int)wParam,(LPNMHDR)lParam);
        case WM_DESTROY:
                RETAILMSG(1,(_T("WndProc::WM_DESTROY \n")));
                mRootElement = NULL;
                OnDestroy();
                break;

        default:
                RETAILMSG(1,(_T("WndProc::default \n")));
                brc = FALSE;
                break;
        }
        return brc;

}


然后在 OnInitDialog() 函数中:
void powerInfo::OnInitDialog()
{
        PSYSTEM_POWER_STATUS_EX   pstatus;
        HWND EditWnd1;
        HWND EditWnd2;
        BOOL   fUpdate=TRUE;
        BOOL brc;
        LPCTSTR baper;
        LPCTSTR secbaper;
        secbaper=L"This is a test";
//        SetDlgItemInt(GetHWnd(),s,IDC_BaText,FALSE);//(int)pstatus->BackupBatteryLifePercent
        SetDlgItemText(GetHWnd(),IDC_BaText,secbaper);//(int)pstatus->BackupBatteryLifePercent

}

但是结果并不显示
我单步调试的时候 发现响应WM_INITDIALOG的时候 并没有把显示的窗口调出来 所以SetDlgItemText中的GetHWnd() 并不是TEXT控件的窗口
请问 我该怎么也才能实现这个功能呢?

谢谢

最新回复

case WM_INITDIALOG: RETAILMSG(1,(_T("WndProc::initial \n"))); mRootElement = (IElement*) lParam; OnInitDialog(); LPCTSTR secbaper;   return TRUE; case WM_VIEWELEMENT: 需要返回true才能显示界面。  详情 回复 发表于 2008-5-30 11:31
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
case WM_INITDIALOG:
RETAILMSG(1,(_T("WndProc::initial \n")));
mRootElement = (IElement*) lParam;
OnInitDialog();
LPCTSTR secbaper;//怎么这里也有一个
break;
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个是多了  但不是这个问题
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
BOOL SetDlgItemText(
  HWND hDlg,
  int nIDDlgItem,
  LPCTSTR lpString
);
Parameters
hDlg
[in] Handle to the dialog box that contains the control.

第一个参数应该是包含这个TEXT空间的窗口,这个窗口的句柄应该在InitInstance里可以得到的
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
你没有贴任何有效的代码上来,只是个框架
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
case WM_INITDIALOG:
RETAILMSG(1,(_T("WndProc::initial \n")));
mRootElement = (IElement*) lParam;
OnInitDialog();
LPCTSTR secbaper;
  return TRUE;
case WM_VIEWELEMENT:

需要返回true才能显示界面。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表