WINCE常见问题解答Word下载.docx
《WINCE常见问题解答Word下载.docx》由会员分享,可在线阅读,更多相关《WINCE常见问题解答Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
//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.
就是说当对话框窗口创建完以后,会发出一个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()
HWNDhDlg=m_hWnd;
shidi.dwFlags=SHIDIF_SIPDOWN;
//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_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.
LoadBitmap(IDR_ADD_TOOLBAR);
SetButtons(Toolbar2Buttons
sizeof(Toolbar2Buttons)/sizeof(UINT));
ADOCE
//Maketoolbardockable.
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(d_pToolbar2);
OnToolbarShow()
ASSERT(d_pToolbar2!
=0);
//Querycurrentvisibility.
BOOLbVisible=(d_pToolbar2->
GetStyle()&
WS_VISIBLE);
//Showorhide.
intnShow=(bVisible)?
SW_HIDE:
SW_SHOWNORMAL;
ShowWindow(nShow);
//Reconfigureremainingtoolbaritems.
RecalcLayout();
//Storevisibilitystateforlater.
d_bToolbarVisible=(!
bVisible);
OnUpdateToolbarShow(CCmdUI*pCmdUI)
//Thisfunctionissignedforcheckingthemenu'
Edit|ShowToolbar'
pCmdUI->
Enable(d_pToolbar2!
intnCheck=(d_bToolbarVisible)?
1:
0;
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方法,你可用它实现。
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,因为对话框还没有可见。
你应该传递一个自定义音讯,在那个音讯调用这个函