📄 mailman.cpp
字号:
LoadString(g_hInst,IDS_STRING_APPDATAPATH,full,100);
LoadString(g_hInst,IDS_STRING_SMAILDB,name,30);
lstrcat(full,L"\\");
lstrcat(full,name);
if(g_sendmaildb.MountVolum(full) == FALSE)
return FALSE;
LoadString(g_hInst,IDS_STRING_APPDATAPATH,full,100);
LoadString(g_hInst,IDS_STRING_INBOX,name,30);
lstrcat(full,L"\\");
lstrcat(full,name);
if(g_maildate.MountVolume(full) == FALSE)
return FALSE;
LoadString(g_hInst,IDS_STRING_APPDATAPATH,full,100);
LoadString(g_hInst,IDS_STRING_TRASHBOX,name,30);
lstrcat(full,L"\\");
lstrcat(full,name);
if(g_mailtrash.MountVolume(full) == FALSE)
return FALSE;
LoadString(g_hInst,IDS_STRING_APPDATAPATH,full,100);
LoadString(g_hInst,IDS_STRING_UID,name,30);
lstrcat(full,L"\\");
lstrcat(full,name);
if(g_uiddb.MountVolume(full) == FALSE)
return FALSE;
return TRUE;
}
BOOL RemoveDB()
{
g_sendmaildb.UnmmountVolume();
g_maildate.UnmountVolume();
g_mailtrash.UnmountVolume();
g_uiddb.UnmountVolume();
return TRUE;
}
/*****************************************************************************
WinMain
***************************************************************************/
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nCmdShow
)
{
MSG msg;
HWND hwnd = NULL;
BOOL fActivated;
WNDCLASS wc;
HWND hwndMain;
TCHAR szAppTitle[20];
g_hInst = hInstance;
if(0 == LoadString(g_hInst, IDS_HELLO_TITLE, szAppTitle, ARRAYSIZE(szAppTitle)))
{
return(0);
}
if(FAILED(ActivatePreviousInstance(g_szAppWndClass, szAppTitle, &fActivated)) ||
fActivated)
{
return(0);
}
// Register our main window's class.
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW ;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIcon = NULL;
wc.hInstance = g_hInst;
wc.hCursor = NULL;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szAppWndClass;
if(!RegisterClass(&wc))
{
return(0);
}
again:
// Create the main window.
g_winmain = hwndMain = CreateWindow(g_szAppWndClass, szAppTitle,
WS_CLIPCHILDREN, // Setting this to 0 gives a default style we don't want. Use a benign style bit instead.
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, g_hInst, NULL );
if(!hwndMain)
{
return(0);
}
ShowWindow(hwndMain, SW_HIDE);
UpdateWindow(hwndMain);
//Sign In Dlg
g_signindlg.m_rightlogin = FALSE;
while(!g_signindlg.m_rightlogin)
{
CSignInDlg::DlgBox(g_signindlg,hInstance,hwndMain);
if(g_signindlg.m_quit)
{
SendMessage(hwndMain,WM_CLOSE,0,0);
break;
}
}
if(!g_signindlg.m_quit)
{
ShowWindow(hwndMain, SW_SHOW);
UpdateWindow(hwndMain);
SetForegroundWindow(hwndMain);
}
timestart = FALSE;
SetTimer(hwndMain,REVIEMAIL_TIMER_ID,TIME,NULL);
// Pump messages until a PostQuitMessage.
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage(&msg);
}
// if(!g_signindlg.m_quit)
// goto again;
return msg.wParam;
}
BOOL LoadGlobleString()
{
if(0 == LoadString(g_hInst, IDS_STRING_MAILBOX,g_MainList[0],ARRAYSIZE(g_MainList[0])))
{
return FALSE;
}
if(0 == LoadString(g_hInst, IDS_STRING_MSMAILBOX,g_MainList[1],ARRAYSIZE(g_MainList[1])))
{
return FALSE;
}
if(0 == LoadString(g_hInst, IDS_STRING_MCREATEMAIL,g_MainList[2],ARRAYSIZE(g_MainList[2])))
{
return FALSE;
}
if(0 == LoadString(g_hInst, IDS_STRING_MCONTACTS,g_MainList[3],ARRAYSIZE(g_MainList[3])))
{
return FALSE;
}
if(0 == LoadString(g_hInst, IDS_STRING_MOPTIONS,g_MainList[4],ARRAYSIZE(g_MainList[4])))
{
return FALSE;
}
if(0 == LoadString(g_hInst, IDS_STRING_MRECYCLE,g_MainList[5],ARRAYSIZE(g_MainList[5])))
{
return FALSE;
}
if(0 == LoadString(g_hInst,IDS_STRING_GROUP1,g_group[0],ARRAYSIZE(g_group[0])))
{
return FALSE;
}
if(0 == LoadString(g_hInst,IDS_STRING_GROUP2,g_group[1],ARRAYSIZE(g_group[1])))
{
return FALSE;
}
if(0 == LoadString(g_hInst,IDS_STRING_GROUP3,g_group[2],ARRAYSIZE(g_group[2])))
{
return FALSE;
}
if(0 == LoadString(g_hInst,IDS_STRING_GROUP4,g_group[3],ARRAYSIZE(g_group[3])))
{
return FALSE;
}
if(0 == LoadString(g_hInst,IDS_STRING_GROUP5,g_group[4],ARRAYSIZE(g_group[4])))
{
return FALSE;
}
return TRUE;
}
BOOL LoadGlobleBitMap()
{
int i;
g_readedmailmap = LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP_READMAIL));
if(g_readedmailmap == NULL)
return FALSE;
g_newmailmap = LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP_NEWMAIL));
if(g_newmailmap == NULL)
return FALSE;
g_mailsendmap = LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP_MAILSEND));
if(g_mailsendmap == NULL)
return FALSE;
g_mailnotsendmap = LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP_MAILNOTSEND));
if(g_mailnotsendmap == NULL)
return FALSE;
int mapid[6] = {IDB_BITMAP_MAILBOX,IDB_BITMAP_RMAILBOX,IDB_BITMAP_WRITEMAIL,IDB_BITMAP_CONTACT,IDB_BITMAP_OPTION,IDB_BITMAP_RECYCLE};
for(i = 0;i < 6;++i)
{
g_mainmenumap[i] = LoadBitmap(g_hInst,MAKEINTRESOURCE(mapid[i]));
if(g_mainmenumap[i] == NULL)
{
int n = GetLastError();
return FALSE;
}
}
return TRUE;
}
BOOL DrawMainItem(HWND hwnd, LPARAM lParam)
{
LPDRAWITEMSTRUCT lpdis;
lpdis = (LPDRAWITEMSTRUCT)lParam;
MailInfoDB rmail;
HDC hdc;
int index;
if(lpdis->CtlType != ODT_LISTVIEW)
return FALSE;
LPCTSTR lpszText = (LPCTSTR) lpdis->itemData;
index = lpdis->itemID;
hdc = lpdis->hDC;
//draw the back ground
COLORREF crOldTextColor = GetTextColor(hdc);
COLORREF crOldBkColor = GetBkColor(hdc);
HBRUSH hbrBkColor = CreateSolidBrush (crOldBkColor);
HBRUSH hbrSEL = CreateSolidBrush (GetSysColor(COLOR_HIGHLIGHT));
if ((lpdis->itemAction | ODA_SELECT) && (lpdis->itemState & ODS_SELECTED))
{
SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
FillRect(hdc, &lpdis->rcItem,hbrSEL);
}
else
FillRect(hdc, &lpdis->rcItem,hbrBkColor);
DeleteObject (hbrSEL);
DeleteObject (hbrBkColor);
HDC hdcTemp = CreateCompatibleDC(hdc);
SelectObject(hdcTemp, g_mainmenumap[index]);
BITMAP bm;
GetObject(g_mainmenumap[index], sizeof(BITMAP), &bm);
BOOL res = TransparentImage(hdc,lpdis->rcItem.left+5,(lpdis->rcItem.top+5), bm.bmWidth, bm.bmHeight, hdcTemp,0,0,bm.bmWidth, bm.bmHeight,RGB(255,255,255));
DeleteDC(hdcTemp);
TCHAR buffer[80];
switch(index)
{
case 0:swprintf(buffer,g_MainList[index],g_maildate.GetDBRecordsNum(g_username));
break;
default:swprintf(buffer,g_MainList[index]);
}
RECT textrc;
//set font imf
LOGFONT fonimf = {0};
GetTextFace(hdc,32,fonimf.lfFaceName);
fonimf.lfHeight = 18;
fonimf.lfWidth = 5;
fonimf.lfWeight = FW_SEMIBOLD;
fonimf.lfUnderline = FALSE;
fonimf.lfStrikeOut = FALSE;
HFONT hf = (HFONT)CreateFontIndirect(&fonimf);
HFONT old;
old = (HFONT)SelectObject(hdc,hf);
//draw text
textrc.bottom = lpdis->rcItem.bottom;
textrc.top = lpdis->rcItem.top+4;
textrc.right = lpdis->rcItem.right;
textrc.left = lpdis->rcItem.left+1 + 34;
DrawText(hdc,buffer,-1,&textrc,DT_SINGLELINE|DT_LEFT);
hf = (HFONT)SelectObject(hdc,old);
DeleteObject(hf);
SetTextColor(hdc,crOldTextColor);
SetBkColor(hdc,crOldBkColor);
ReleaseDC (mainview.m_hwnd, hdc);
return TRUE;
}
BOOL ReleaseResource()
{
BOOL res = DeleteObject(g_readedmailmap);
res = DeleteObject(g_newmailmap);
res = DeleteObject(g_mailnotsendmap);
res = DeleteObject(g_mailsendmap);
res = DeleteObject(g_newmailmap);
for(int i = 0;i < 6;++i)
{
res = DeleteObject(g_mainmenumap[i]);
}
return TRUE;
}
// end MailMan.cpp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -