WINCE常见问题解答.docx

上传人:b****3 文档编号:4660968 上传时间:2022-12-07 格式:DOCX 页数:10 大小:23.59KB
下载 相关 举报
WINCE常见问题解答.docx_第1页
第1页 / 共10页
WINCE常见问题解答.docx_第2页
第2页 / 共10页
WINCE常见问题解答.docx_第3页
第3页 / 共10页
WINCE常见问题解答.docx_第4页
第4页 / 共10页
WINCE常见问题解答.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

WINCE常见问题解答.docx

《WINCE常见问题解答.docx》由会员分享,可在线阅读,更多相关《WINCE常见问题解答.docx(10页珍藏版)》请在冰豆网上搜索。

WINCE常见问题解答.docx

WINCE常见问题解答

WindowsCE开发常见问题解答(转载)

1.怎么在一个控件获得焦点时打开软键盘?

比如一个EditBox获得焦点后,这(huodejiaodianhou_zhe)个时分自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄(li3mian4you3xie1can1shu3nong4)不明白

//隐藏输入面板

BOOLLowerSip()

{

BOOLfRes=FALSE;

SIPINFOsi;

memset(&si0sizeof(si));

si.cbSize=sizeof(si);

if(SHSipInfo(SPI_GETSIPINFO0&si0))

{

si.fdwFlags&=~SIPF_ON;

fRes=SHSipInfo(SPI_SETSIPINFO0&si0);

}

returnfRes;

}

//升起输入面板

BOOLRaiseSip(void)

{

BOOLfRes=FALSE;

SIPINFOsi;

memset(&si0sizeof(si));

si.cbSize=sizeof(si);

if(SHSipInfo(SPI_GETSIPINFO0&si0))

{

si.fdwFlags|=SIPF_ON;

fRes=SHSipInfo(SPI_SETSIPINFO0&si0);

}

returnfRes;

}

再试试下面这些:

//SHSipPreference(m_hWndSIP_UP);//弹出输入面板

//SHSipPreference(m_hWndSIP_DOWN);//隐藏输入面板(有一个时延)

lunwenck@

//SHSipPreference(m_hWndSIP_FORCEDOWN);//隐藏输入面板(立刻)

//SHSipPreference(m_hWndSIP_UNCHANGED);

//一般只用在调用SIP_DOWN时的的后面,使这个命令无效

--------------------------------------------------------------------------------

2.WinCE下字符串-数字转化的问题!

在VC6.0下,把#include、#include两个文件包括进去后,下面这段待码一点问题没有

CStringstr1str2;

str1="123";

str2="123.4";

inti;

floatj;

i=atoi(str1);

j=atof(str2);

但是在EVC3.0里面,却出现了问题:

提示atof没有定义,atoi也不能正常转化。

用wcstoiwcstofwcstol和wcstod

--------------------------------------------------------------------------------

3.我新拿了一个PocketPc,编了几个程序,但发现(_bian1le0ji3ge4cheng2xu4_dan4fa1xian4)对话框都只能全屏显示,这是为什么?

一般在PocketPC中所有的对话框都是全屏显示,这是操作系统规定的行为。

但如使用系统自定义的信息提示框,则不是全屏显示。

如:

Afxmessagebox所激发的提示框就是如此。

可以重载WM_INITDIALOG音讯

MSDN:

TheDialogBoxmacrousestheCreateWindowExfunctiontocreatethedialogbox.DialogBoxthensendsaWM_INITDIALOGmessagetothedialogboxprocedure.Thefunctiondisplaysthedialogbox(regardlessofwhetherthetemplatespecifiestheWS_VISIBLEstyle)disablestheownerwindowandstartsitsownmessagelooptoretrieveanddispatchmessagesforthedialogbox.

lunwenck@

就是说当对话框窗口创建完以后,会发出一个WM_INITDIALOG音讯,你只要在自己的窗口音讯处理函数里对这个音讯进行处理,就可以了

比如:

caseWM_INITDIALOG:

//CreateaDonebuttonandsizeit.

shidi.dwMask=SHIDIM_FLAGS;

shidi.dwFlags=SHIDIF_DONEBUTTON|SHIDIF_SIPDOWN|SHIDIF_SIZEDLGFULLSCREEN;

shidi.hDlg=hDlg;

SHInitDialog(&shidi);

InitOptionDlg(hDlg);

returnTRUE;

主要就(zhuyaojiu)是修改shidi.dwFlags,看看ABOUT的窗口音讯处理吧

补充:

SHINITDLGINFOshidi;

SHINITDLGINFOshidi;

上面说的是在纯API的程序中的方法

对于MFC创建的DIALOG程序,可以这样:

BOOLCXXXDlg:

:

OnInitDialog()

{

SHINITDLGINFOshidi;

HWNDhDlg=m_hWnd;

//CreateaDonebuttonandsizeit.

shidi.dwMask=SHIDIM_FLAGS;

shidi.dwFlags=SHIDIF_SIPDOWN;

shidi.hDlg=hDlg;

SHInitDialog(&shidi);

//InitOptionDlg(hDlg);

//CDialog:

:

OnInitDialog();

……

}

--------------------------------------------------------------------------------

4.在eVC基于MFC的程序中如何将ToolBar栏隐(lan2yin3)藏

关于ToolBar的隐藏:

首先,假如你是用MFC导游创建的工程,则默认会生成ToolBar,我要说的是,干掉它!

自己来创建。

First,声明CToolBar成员变量:

[精神到处文章在学问深时意气平]

CToolBar*d_pToolbar2;

然后…(ran2hou4_)…

staticUINTbaseD_CODEToolbar2Buttons[]=

{

//下面是工具栏对应菜单的ID,工具栏图标是我弄(_gong1ju4lan2tu2biao1shi4wo3nong4)的一个Bitmap,其ID为IDR_ADD_TOOLBAR

ID_FILE_NEW

ID_FILE_OPEN

ID_FILE_SAVE

ID_SEPARATOR

ID_EDIT_CUT

ID_EDIT_COPY

ID_EDIT_PASTE

ID_SEPARATOR

ID_TRANS_DICT

ID_TOOLBAR_SHOW//这是新加入的(zheshixinjiarude)菜单项,点击隐藏工具栏,再点击就显示工具栏

};

然后……

在CMainframe的OnCreate()中加入:

OnToolbarCreate();

然后……

voidCMainframe:

:

OnToolbarCreate()

{

//Shouldonlygethereifwedon'thaveatoolbar.

ASSERT(d_pToolbar2==0);

//CreateC++objectandWinAPIwindow.

d_pToolbar2=newCToolBar();

d_pToolbar2->Create(thisWS_CHILD|CBRS_BOTTOM|

CBRS_SIZE_FIXED|CBRS_FLOATING

0x9100);

//Getbitmapandconnecttotoolitems.

d_pToolbar2->LoadBitmap(IDR_ADD_TOOLBAR);

d_pToolbar2->SetButtons(Toolbar2Buttons

sizeof(Toolbar2Buttons)/sizeof(UINT));

ADOCE

//Maketoolbardockable.

d_pToolbar2->EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(d_pToolbar2);

}

然后……

voidCMainframe:

:

OnToolbarShow()

{

ASSERT(d_pToolbar2!

=0);

//Querycurrentvisibility.

BOOLbVisible=(d_pToolbar2->GetStyle()&WS_VISIBLE);

//Showorhide.

intnShow=(bVisible)?

SW_HIDE:

SW_SHOWNORMAL;

d_pToolbar2->ShowWindow(nShow);

//Reconfigureremainingtoolbaritems.

RecalcLayout();

//Storevisibilitystateforlater.

d_bToolbarVisible=(!

bVisible);

}

voidCMainframe:

:

OnUpdateToolbarShow(CCmdUI*pCmdUI)

{

//Thisfunctionissignedforcheckingthemenu'Edit|ShowToolbar'

pCmdUI->Enable(d_pToolbar2!

=0);

intnCheck=(d_bToolbarVisible)?

1:

0;

pCmdUI->SetCheck(nCheck);

}

OK,默认情况下ToolBar是隐藏的,点击菜单中的新加入的隐藏/显示工具栏命令即可往返切换了。

--------------------------------------------------------------------------------

5.如何制作pocketPc下的安装程序?

在C:

\WindowsCETools\wce300\MSPocketPC\support\ActiveSync\windowsceapplicationinstallation下面有例子.

论文参考网

也有其它第三方的安装工具,比如installshield。

--------------------------------------------------------------------------------

6.怎么在主界面中显示一幅图片

我做了一个小程序,想在主界面中显示一幅图片,我的图片是.JPG格式的,假如需要转换,用什么工具?

把JPG图转为BMP图咯,网上有不少这样的程序。

然后用LoadBitmap、Selectobject、StretchBlt等语句把BMP图显示辰VIEW中。

--------------------------------------------------------------------------------

7.请问,在WinCE下如何截获所有鼠标和键盘的音讯?

wince下只能用三种钩子

#defineWH_JOURNALRECORD0

#defineWH_JOURNALPLAYBACK1

#defineWH_KEYBOARD_LL20

--------------------------------------------------------------------------------

8.在PocketPC下用eVC作的对话框能否做成不是全屏的?

在MFC中

m_bFullScreen=FALSE;

--------------------------------------------------------------------------------

9.如何将char类型的中文字符串转换成Unicode的字符串?

MultiByteToWideChar,在仿真器中无效;你也可以通过其他方法;用wcsprintf这个函数

--------------------------------------------------------------------------------

论文写作、发表参考大全

10.evc单文档界面中,菜单左边总有一个"new",如何将其去掉?

在MainFrm的OnCreate内找到这个:

m_wndCommandBar.m_bShowSharedNewButton=TRUE;

把TRUE改为FALSE

--------------------------------------------------------------------------------

11.Edit出现上下文菜单问题?

近来我看了一下SDK带的Sample中的Npp,其中它有一个功能就是在EDIT上出现上下文菜单,可是当我仿照它在自己的项目中添加此功能时,即在资源中添加CONTROL""IDC_STATIC"SIPPREF"NOTWS_VISIBLE-10-10、66,在模仿器中正常(_zaimoniqizhongzhengchang),但在PDA中不能显示包含Edit的对话框。

而Npp可以在两者正常显示。

我又在Npp中增加一个对话框,也相应的改变资源,结果是在模仿器和PDA中都能正常(zhong1dou1neng2zheng4chang2)显示。

调用SHInitExtraControls()应该在构造函数,不应在OnInitDialog中。

如果在OnInitDialog中调用,包含EDIT的对话框将不显示。

事实上在XXXApp:

:

InitInstance函数中调用更好,这样只需调用一次,就万事大吉。

--------------------------------------------------------------------------------

12.如何将.mdb数据库转换为.cdb数据库

如何将.mdb数据库转换为.cdb数据库,在没有实际PDA只有PocketPCEmuliation和EVB的情况下。

PocketPCEmuliation运行时为何提示“存储器不足,无法完成操作”?

此问题微软已经给出了答案。

在SDK文档中有一个叫做device的例子程序,它就是将tdb文件转化成cdb文件的,而还有一个desktop的程序,它是将mdb文件转化成tdb文件的。

--------------------------------------------------------------------------------

13.请问如何用(qingwenruheyong)EVC建立和调用DLL

我按照帮助中用MFC开发DLL的例子做,但是另外一个程序调用的时分的时分却出现连接错误,说找不到那个函数。

后来看了EVC的例子spintest之后也是这样。

和在WINDOWS下的一样

是不是LINK2001ERROR?

你如果是隐式调用(就是不用LOADLIBRARY()的),要把你的DLL的LIB文件在PROJECT-->SETTINGS--->LINK--->INPUT里指明。

--------------------------------------------------------------------------------

14.编辑框如何自动会换行?

请教Plam中的table控件在Wince上怎么(shangzenme)做?

就是编辑框自动会换行.当你输入的内容超过一行自动切换到下一行下面的内容自动往下滚。

勾选编辑控件的MultiLine,如果想输入回车换行,再勾选wantrenturn

--------------------------------------------------------------------------------

15.是否在adocepocketaccess中的update语句不能执行?

ADOCE不能直接执行UPDATE语句,但ADOCE有Update方法,你可用它实现。

lunwenck@

--------------------------------------------------------------------------------

16.请问如何(qingwenruhe)在WindowsCE中实现BC++中的inport(...)与outportb(...)函数功能?

CE下,可以用WINDOWSAPI函数来对端沮操作。

比较简朴。

API一般只要用到CreateFile(打开端沮,串口操作和文件操作只有一点不同就是打开方式不同,所以第三个参数要用OPEN_EXISTING)

COMMTIMEOUTS、DCB两个结构是寄存设置参数的,可以改

WriteFile、WriteFile(读写端沮(_duxieduanju))

因为串口通讯用的是异步通讯,所以下面两句比较重要

SetCommMask(指定监视的端沮事件)

WaitCommEvent(等待端沮事件)

--------------------------------------------------------------------------------

17.如何显示一个对话框让用户选择一个目录而不是文件

没有标准的函数处理这个,你只好自己实现活使用第三方的解决方案。

--------------------------------------------------------------------------------

18.有没有办法(API)激活或禁止电源保存形式?

参看SystemIdleTimerReset()的安装文档。

创建一个包含象睡眠的无限循环的线程,然后调用SystemIdleTimerReset()。

也许有一种中断线程的办法就是程序退出。

--------------------------------------------------------------------------------

19.WindowsCE的文件名最小程度是多少?

论文参考网

在windef.h定义了MAX_PATH,普遍应该是260个字符。

20.我使用CFileDialog创建了一个浏览按钮,默认目录始终颓显示"AllFolders"和在"\MyDevice\Mydo***ents"下。

怎么改变初始目录到"\MyDevice"。

使用fileDlg.m_ofn.lpstrInitialDir=TEXT("file:

//My/Device");,但是没有改变默认显示衬目录。

lpstrInitialDir指向一个指定初始文件目录的字符串。

如果为NULL,将使用系统的根目录。

尽量尝试一下lpstrInitialDir为NULL。

--------------------------------------------------------------------------------

21.在PocketPC工作栏上可能有X和OK按钮吗?

不可能,至少没有象WisBar的第三方工具。

--------------------------------------------------------------------------------

22.如何禁止用户改变日期和时间?

有可能实现吗?

你可能用自己的程序替待\windows\clock.exe,但是,它们可以通过另外的程序处理这个。

同样,在同步时ActiveSync改变设备的时间与PC匹配。

--------------------------------------------------------------------------------

23.我有一个xscalcpu的ipaq3970设备,但是在eMbeddedVisualC++3.0上没有目标类型。

我应该在EVC3.0上使用什么类型。

这个问题也发生在安装程序Cabwiz.exe上。

论文参考网

你可以使用ARM类型。

XScal基于ARM体系。

--------------------------------------------------------------------------------

24.如何使程序在后台运行?

最小化程序将使程序进入后台,因此只要在程序启动时最小化,那么它将运行在后台。

补充:

还可以做成service。

--------------------------------------------------------------------------------

25.我预备去掉SIP按钮。

我在OnInitDialog事件中使用SHFullScreen。

然而SIP按钮仍旧可见,忘记做什么了吗?

待码如下:

//SHFullScreenfailsifdialogboxisnotforeground.

SetForegroundWindow();

//Gotothefullscreenmode

SHFullScreen(m_hWndSHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON);

不能在OnInitDialog中使用SHFullScreen,因为对话框还没有可见。

你应该传递一个自定义音讯,在那个音讯调用这个函

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1