嵌入式基于Wince专辑个人通讯录代码Word格式文档下载.docx
- 文档编号:18727297
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:38
- 大小:26.16KB
嵌入式基于Wince专辑个人通讯录代码Word格式文档下载.docx
《嵌入式基于Wince专辑个人通讯录代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《嵌入式基于Wince专辑个人通讯录代码Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
);
HINSTANCEhInst;
//Programinstancehandle
HANDLEg_hDB=INVALID_HANDLE_VALUE;
//Handletoalbumdatabase
CEOIDg_oidDB=0;
//ObjectIDofthealbumdatabase
CEGUIDg_guidDB;
//Guidfordatabasevolume
CENOTIFYREQUESTcenr;
//Notifyrequeststructure.
intg_nLastSort=0;
//Lastsortorderused
CEDBASEINFOEXg_diex;
//Sortorderarray
//Thesetwovariablesrepresentaone-itemcachefor
//thelistviewcontrol.
intg_nLastItem=-1;
LPBYTEg_pLastRecord=0;
//MessagedispatchtableforMainWindowProc
conststructdecodeUINTMainMessages[]={
WM_CREATE,DoCreateMain,
WM_SIZE,DoSizeMain,
WM_COMMAND,DoCommandMain,
WM_NOTIFY,DoNotifyMain,
WM_DESTROY,DoDestroyMain,
WM_DBNOTIFICATION,DoDbNotifyMain,
};
//CommandmessagedispatchforMainWindowProc
conststructdecodeCMDMainCommandItems[]={
IDM_DELDB,DoMainCommandDelDB,
IDM_EXIT,DoMainCommandExit,
IDM_NEW,DoMainCommandNew,
IDM_EDIT,DoMainCommandEdit,
IDM_DELETE,DoMainCommandDelete,
IDM_SORTNAME,DoMainCommandSort,
IDM_SORTARTIST,DoMainCommandSort,
IDM_SORTCATEGORY,DoMainCommandSort,
IDM_ABOUT,DoMainCommandAbout,
//Albumcategorystrings;
mustbealphabetical.
constTCHAR*pszCategories[]={TEXT("
Family"
),TEXT("
Friends"
),
TEXT("
collague"
mates"
)};
//Programentrypoint
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,
LPWSTRlpCmdLine,intnCmdShow){
HWNDhwndMain;
MSGmsg;
intrc=0;
//Initializethisinstance.
hwndMain=InitInstance(hInstance,lpCmdLine,nCmdShow);
if(hwndMain==0)
return0x10;
//Applicationmessageloop
while(GetMessage(&
msg,NULL,0,0)){
TranslateMessage(&
msg);
DispatchMessage(&
}
//Instancecleanup
returnTermInstance(hInstance,msg.wParam);
}
//InitInstance-Instanceinitialization
//
HWNDInitInstance(HINSTANCEhInstance,LPWSTRlpCmdLine,intnCmdShow){
HWNDhWnd;
WNDCLASSwc;
INITCOMMONCONTROLSEXicex;
#ifdefined(WIN32_PLATFORM_PSPC)||defined(WIN32_PLATFORM_WFSP)
//ForWindowsMobiledevices,allowonlyoneinstanceoftheapp
hWnd=FindWindow(szAppName,NULL);
if(hWnd){
SetForegroundWindow((HWND)(((DWORD)hWnd)|0x01));
return(HWND)-1;
#endif
//Saveprograminstancehandleinglobalvariable.
hInst=hInstance;
//CreateaguidforthedatabaseExfunctionsthatpoints
//totheobjectstore.
CREATE_SYSTEMGUID(&
g_guidDB);
memset(&
cenr,0,sizeof(cenr));
//Initializethenotifyrequest.
//Initializedatabaseinfostructure.
g_diex,0,sizeof(g_diex));
g_diex.wVersion=CEDBASEINFOEX_VERSION;
g_diex.dwFlags=CEDB_VALIDNAME|CEDB_VALIDTYPE|
CEDB_VALIDSORTSPEC;
StringCchCopy(g_diex.szDbaseName,dim(g_diex.szDbaseName),
\\Albums"
));
g_diex.dwDbaseType=0;
g_diex.wNumSortOrder=3;
//Createsortpropertyarray
inti=0;
g_diex.rgSortSpecs[i].wVersion=SORTORDERSPECEX_VERSION;
g_diex.rgSortSpecs[i].wNumProps=2;
g_diex.rgSortSpecs[i].rgPropID[0]=PID_NAME;
g_diex.rgSortSpecs[i].rgdwFlags[0]=0;
g_diex.rgSortSpecs[i].rgPropID[1]=PID_CATEGORY;
g_diex.rgSortSpecs[i].rgdwFlags[1]=0;
i++;
g_diex.rgSortSpecs[i].rgPropID[0]=PID_ARTIST;
g_diex.rgSortSpecs[i].rgPropID[1]=PID_NAME;
g_diex.rgSortSpecs[i].wNumProps=3;
g_diex.rgSortSpecs[i].rgPropID[0]=PID_CATEGORY;
g_diex.rgSortSpecs[i].rgPropID[1]=PID_ARTIST;
g_diex.rgSortSpecs[i].rgPropID[2]=PID_NAME;
g_diex.rgSortSpecs[i].rgdwFlags[2]=0;
//Registerapplicationmainwindowclass.
wc.style=0;
//Windowstyle
wc.lpfnWndProc=MainWndProc;
//Callbackfunction
wc.cbClsExtra=0;
//Extraclassdata
wc.cbWndExtra=0;
//Extrawindowdata
wc.hInstance=hInstance;
//Ownerhandle
wc.hIcon=NULL,//Applicationicon
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
//Defaultcursor
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName=NULL;
//Menuname
wc.lpszClassName=szAppName;
//Windowclassname
if(RegisterClass(&
wc)==0)return0;
//Loadthecommandbarcommoncontrolclass.
icex.dwSize=sizeof(INITCOMMONCONTROLSEX);
icex.dwICC=ICC_BAR_CLASSES|ICC_TREEVIEW_CLASSES|
ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&
icex);
//Createmainwindow.
hWnd=CreateWindowEx(0,szAppName,TEXT("
),WS_VISIBLE,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
//Returnfailcodeifwindownotcreated.
if(!
IsWindow(hWnd))return0;
//Standardshowandupdatecalls
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
returnhWnd;
//TermInstance-Programcleanup
intTermInstance(HINSTANCEhInstance,intnDefRC){
//Closetheopeneddatabase.
if(g_hDB!
=INVALID_HANDLE_VALUE)
CloseHandle(g_hDB);
//Freethelastdbqueryifsaved.
ClearCache();
returnnDefRC;
//MessagehandlingproceduresforMainWindow
//MainWndProc-Callbackfunctionforapplicationwindow
LRESULTCALLBACKMainWndProc(HWNDhWnd,UINTwMsg,WPARAMwParam,
LPARAMlParam){
inti;
//
//Searchmessagelisttoseeifweneedtohandlethis
//message.Ifinlist,callprocedure.
for(i=0;
i<
dim(MainMessages);
i++){
if(wMsg==MainMessages[i].Code)
return(*MainMessages[i].Fxn)(hWnd,wMsg,wParam,lParam);
returnDefWindowProc(hWnd,wMsg,wParam,lParam);
//DoCreateMain-ProcessWM_CREATEmessageforwindow.
LRESULTDoCreateMain(HWNDhWnd,UINTwMsg,WPARAMwParam,
HWNDhwndCB,hwndChild;
intnHeight,nCnt;
RECTrect;
//ConvertlParamtopointertocreatestructure.
LPCREATESTRUCTlpcs=(LPCREATESTRUCT)lParam;
SHMENUBARINFOmbi;
//ForWinMobile,create
memset(&
mbi,0,sizeof(SHMENUBARINFO));
//menubarsothatwe
mbi.cbSize=sizeof(SHMENUBARINFO);
//haveasipbutton.
mbi.hwndParent=hWnd;
mbi.dwFlags=SHCMBF_EMPTYBAR;
//Nomenu
SHCreateMenuBar(&
mbi);
SetWindowPos(hWnd,0,0,0,lpcs->
cx,lpcs->
cy-26,
SWP_NOMOVE|SWP_NOZORDER);
lpcs=(LPCREATESTRUCT)lParam;
//Createaminimalcommandbarthathasonlyamenuandan
//exitbutton.
hwndCB=CommandBar_Create(hInst,hWnd,IDC_CMDBAR);
//Insertthemenu.
CommandBar_InsertMenubar(hwndCB,hInst,ID_MENU,0);
//Addexitbuttontocommandbar.
CommandBar_AddAdornments(hwndCB,0,0);
nHeight=CommandBar_Height(hwndCB);
//Openthealbumdatabase.Ifonedoesn'
texist,createit.
g_hDB=OpenCreateDB(hWnd,&
nCnt);
if(g_hDB==INVALID_HANDLE_VALUE){
MessageBox(hWnd,TEXT("
Couldnotopendatabase."
),szAppName,
MB_OK);
DestroyWindow(hWnd);
return0;
//Createthelistviewcontrolinrightpane.
SetRect(&
rect,0,nHeight,lpcs->
cx,lpcs->
cy-nHeight);
hwndChild=CreateLV(hWnd,&
rect);
//Destroyframeifwindownotcreated.
IsWindow(hwndChild)){
ListView_SetItemCount(hwndChild,nCnt);
//DoSizeMain-ProcessWM_SIZEmessageforwindow.
LRESULTDoSizeMain(HWNDhWnd,UINTwMsg,WPARAMwParam,LPARAMlParam){
HWNDhwndLV;
hwndLV=GetDlgItem(hWnd,ID_LISTV);
//Adjustthesizeoftheclientrecttotakeintoaccount
//thecommandbarheight.
GetClientRect(hWnd,&
rect.top+=CommandBar_Height(GetDlgItem(hWnd,IDC_CMDBAR));
SetWindowPos(hwndLV,NULL,rect.left,rect.top,
(rect.right-rect.left),rect.bottom-rect.top,
SWP_NOZORDER);
CommandBar_AlignAdornments(GetDlgItem(hWnd,IDC_CMDBAR));
//DoCommandMain-ProcessWM_COMMANDmessageforwindow.
LRESULTDoCommandMain(HWNDhWnd,UINTwMsg,WPARAMwParam,
WORDidItem,wNotifyCode;
HWNDhwndCtl;
//Parsetheparameters.
idItem=(WORD)LOWORD(wParam);
wNotifyCode=(WORD)HIWORD(wParam);
hwndCtl=(HWND)lParam;
//Callroutinetohandlecontrolmessage.
dim(MainCommandItems);
if(idItem==MainCommandIt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 基于 Wince 专辑 个人 通讯录 代码