⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailman.cpp

📁 有关win32应用程序编程和wince应用程序编程的很全面
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -