Mail module miscellane 2.doc

xiaoxiao2021-03-06  43

l Get hicon

m_hicon = AFXGETAPP () -> Loadicon (IDI_ICON3);

l Exstyle

DWORD DWEXSTYLE = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | / * LVS_EX_SUBITEMIMAGES | * /

m_list1.sextendedStyle (LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

Extended List-View Styles

l Standard List initial

Static Const Struct

{

Uint ncolhdrid;

Int nformat;

Int nwidth;

} coldata [] = {{{ids_null, lvcfmt_left, 30},

{IDS_NULL, LVCFMT_LEFT, 30},

{IDS_NULL, LVCFMT_LEFT, 30},

{IDS_LOG_COLUMN_MAIL_SENDER, LVCFMT_LEFT, 100},

{IDS_LOG_COLUMN_MAIL_RECEIVE_TIME, LVCFMT_LEFT, 170},

{IDS_LOG_COLUMN_MAIL_TITLE, LVCFMT_LEFT, 180}};

Const int ncolcount = sizeof coldata / sizeof coldata [0];

For (int ncolumn = 3; ncolumn

{

Strcolumn.LoadString (Coldata [ncolumn] .ncolhdrid);

M_LCloglistCtrl.insertColumn (ncolumn, strcolumn, coldata [ncolumn] .nformat,

Coldata [ncolumn] .nwidth;

// if (ncolumn> 0) m_lcloglistctrl.enablecolumnhiding (ncolumn, true);

}

l Command definition

///

//

//Head of all commands

//

///

#define dir_cmd_base 0x00000000

Typedef struct _tag_cmd_head

{

DWORD dwcmd; // command Type

INT nbufsize; // command buffer size

Byte Pbuf [0]; // Command Buffer

_TAG_CMD_HEAD ()

{

ZeromeMory (this, sizeof);

}

}

CMD_HEAD, * PCMD_HEAD;

///

// this Message is from mail client to dir-server:

// Upload a attach file:

///

#DEFINE CMD_MAIL_CLT_UPLOAD_FILE_REQ DIR_CMD_BASE 4019TYPEDEF STRUCT _TAG_CMD_MAIL_CLT_UPLOAD_FILE_REQ

{

// char szuser [m_account_size];

// char szattachfile [MAX_LENGTH_ATTACH_FILE_PATH];

_TAG_CMD_MAIL_CLT_UPLOAD_FILE_REQ ()

{

ZeromeMory (this, sizeof (_tag_cmd_mail_clt_upload_file_req));

}

}

CMD_mail_clt_upload_file_req, * PCMD_MAIL_CLT_UPLOAD_FILE_REQ;

#define cmd_mail_clt_upload_file_ret dir_cmd_base 4020

TYPEDEF STRUCT _TAG_CMD_MAIL_CLT_UPLOAD_FILE_RET

{

Char szuser [m_account_size];

}

CMD_MAIL_CLT_UPLOAD_FILE_RET, * PCMD_MAIL_CLT_UPLOAD_FILE_RET;

use

CMD_mail_update_req startemp;

Strtemp.dwcltexistedmails = 12345;

PCMD_HEAD PHEAD = (PCMD_HEAD) NEW BYTE [SIZEOF (cmd_head) sizeof (cmd_mail_update_req)];

MEMSET (PHEAD, 0, SIZEOF (CMD_HEAD) SIZEOF (CMD_mail_update_req);

PHEAD-> DWCMD = cmd_mail_update_req;

PHEAD-> nbufsize = sizeof (cmd_head) sizeof (cmd_mail_update_req);

Memcpy (PHEAD-> PBUF, & Strtemp, SizeOf (cmd_mail_update_req);

TRACE ("[CLTMAIL] ----- Ready to send cmd_mail_update_req!");

IF (false == m_ptransclt-> sendtoServer (phead, phead-> nbufsize) {

TRACE ("[CLTMAIL] ----- Send CMD_mail_update_req failed!");

}

Else TRACE ("[CLTMAIL] ----- Send CMD_mail_update_req success!");

l CLABLE can change the label background

M_StaticRenewPwd.SettextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

m_staticoldpwd.setTextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

m_staticnewpwd.setTextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

CadvancedButton M_BTnClose;

Cadvancedbutton m_btnquit;

CadvancedButton M_BTNDOWNLOADFILE;

CadvancedButton M_BtNuploadFile; CadvancedButton M_BTNADDContact;

CadvancedButton M_BTNSENDMAIL;

l Move your own defined window

Void Mailistdlg :: OnMousemove (uint nflags, cpoint point)

{

IF (NFLAGS & MK_LBUTTON)

{

SendMessage (WM_SYSCOMMAND, SC_MOVE | HTCLIENT, 0);

}

CDIALOG :: OnMousemove (NFLAGS, POINT);

}

l Set a transparent area

// Paint The Common Control

CRECT RECT (0, 0, 0);

GetWindowRect (& Re);

m_hrgn = CREATEWNDRGN (Rect.width (), Rect.Height ());

SetwindowRgn (M_HRGN, TRUE);

Setwindowpos (NULL, Rect.Left, Rect.top, Rect.width (), Rect.Height (), SW_SHOW);

m_btnclose.create (Rect.width () - 27,

4,

m_pbitmap,

CRECT (DLG_BTN_CLOSE_TL_X, DLG_BTN_CLOSE_TL_Y, DLG_BTN_CLOSE_BR_X-1, DLG_BTN_CLOSE_BR_Y),

IDCANCEL,

THIS);

HRGN CREATEWNDRGN (Int nwidth, int nheight);

{

HRGN HRGNELLIPTIC = NULL;

HRGN HRGNRECT_A = NULL;

HRGN HRGNRECT_B = NULL;

Rect rectries;

Rect RectRect_A;

RECT RectRect_b;

RecTelliptic.Left = 0;

Rectelliptic.top = 0;

Rectelliptic.right = 2 * Elliptic_r;

Rectelliptic.bottom = 2 * Elliptic_r;

RectRect_a.Left = 0;

RectRect_a.top = Elliptic_r;

RectRect_A.right = nwidth;

RectRect_a.bottom = NHEIGHT - Elliptic_r;

RectRect_b.Left = Elliptic_r;

RectRect_b.top = 0;

RectRect_B.right = nwidth - Elliptic_r;

RectRect_b.bottom = NHEIGHT;

HRGNELLIPTIC = CreatellipticRgnIndirect (& RecTelliptic);

HRGNRECT_A = CreateRectrGnIndirect (& RectRect_a);

HRGNRECT_B = CreateRectrGNIndirect (& RectRect_B);

Combinergn (hrgnRect_a, hrgnRect_a, hrgnellipelic, rgn_or);

OFFSETRGN (HRGNELLIPTIC, NWIDTH - 2 * Elliptic_r 1, 0);

Combinergn (hrgnRect_a, hrgnRect_a, hrgnellipelic, rgn_or);

OffsetRgn (Hrgnelliptic, 0, NHEIGHT - 2 * Elliptic_r 1); Combinergn (HRGNRECT_A, HRGNRECT_A, HRGNELLIPTIC, RGN_OR);

OffsetRgn (Hrgnelliptic, - (NWIDTH - 2 * Elliptic_r 1), 0);

Combinergn (hrgnRect_a, hrgnRect_a, hrgnellipelic, rgn_or);

Combinergn (hrgnRect_a, hrgnRect_a, hrgnRect_b, rgn_or);

DeleteObject (hrgnRect_b);

DeleteObject (hrgnellipe);

Return hrgnRect_a;

}

Void Mailistdlg :: onpaint ()

{

CPAINTDC DC (this); // Device Context for Painting

CRECT RECT (0, 0, 0);

GetWindowRect (& Re);

ScreenToClient (& Re);

Dc.FillRect (& Rect, M_Peditbkbrush);

CDC MEMDC;

Memdc.createCompatibleDC (& DC);

CBITMAP * OLDBITMAP = NULL;

Oldbitmap = (cbitmap *) MEMDC.SELECTOBJECT (m_pdialogbitmap);

// INT I, J / *, NTOPTIMES * /

CString M_STRTILE;

M_STRTITLE.LOADSTRING (IDS_STRING_TITE_MAIL_LIST_DIALOG);

DC.Bitblt (0, 0, DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT, & MEMDC, 1, 1, SRCCPY); // Draw the Left Corner

DC.Bitblt (Rect.width () - DLG_SIDE_WIDTH, 0, DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT, & MEMDC, BMP_RIGHT_SIDE-DLG_SIDE_WIDTH, 1, SRCCPY); // Draw The Right Corner

dc.StretchBlt (DLG_SIDE_WIDTH, 0, rect.Width () - DLG_SIDE_WIDTH * 2, DLG_SYSBAR_HEIGHT, & memDC, DLG_SIDE_WIDTH 1,1, DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT, SRCCOPY); // Stretch the center

// Draw the Bottom Side

DC.Bitblt (0, Rect.Height () - DLG_BOTTOM_HEIGHT, DLG_SIDE_WIDTH, DLG_BOTTOM_HEIGHT, & MEMDC, 1, BMP_BOTTOM_SIDE-DLG_BOTTOM_HEIGHT, SRCCOPY); // Draw the Left Corner

dc.BitBlt (rect.Width () - DLG_SIDE_WIDTH, rect.Height () - DLG_BOTTOM_HEIGHT, DLG_SIDE_WIDTH, DLG_BOTTOM_HEIGHT, & memDC, BMP_RIGHT_SIDE-DLG_SIDE_WIDTH, BMP_BOTTOM_SIDE-DLG_BOTTOM_HEIGHT, SRCCOPY); // Draw the right corner

dc.StretchBlt (DLG_SIDE_WIDTH, rect.Height () - DLG_BOTTOM_HEIGHT, rect.Width () - DLG_SIDE_WIDTH * 2, DLG_BOTTOM_HEIGHT, & memDC, DLG_SIDE_WIDTH 1, BMP_BOTTOM_SIDE-DLG_BOTTOM_HEIGHT, DLG_SIDE_WIDTH, DLG_BOTTOM_HEIGHT, SRCCOPY); // Stretch the center // Draw the Left Side

Dc.stretchblt (0, DLG_SYSBAR_HEIGHT, DLG_SIDE_WIDTH, Rect.Height () - DLG_BOTTOM_HEIGHT-DLG_SYSBAR_HEIGHT, & MEMDC, 1, 25, DLG_SIDE_WIDTH, 5, SRCCOPY;

// Draw the Right Side

dc.StretchBlt (rect.Width () - DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT, DLG_SIDE_WIDTH, rect.Height () - DLG_BOTTOM_HEIGHT-DLG_SYSBAR_HEIGHT, & memDC, BMP_RIGHT_SIDE-DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT 2, DLG_SIDE_WIDTH, DLG_BOTTOM_HEIGHT, SRCCOPY);

// Draw the center

Dc.stretchblt (DLG_SIDE_WIDTH, DLG_SYSBAR_HEIGHT, Rect.width () - DLG_SIDE_WIDTH * 2, Rect.Height () - DLG_BOTTOM_HEIGHT-DLG_SYSBAR_HEIGHT, & MEMDC, 30, 30, 1, 1, srcopy;

Dc.selectObject (OldbitMap);

IF (! m_strtitle.isempty ())

{

CSIZE SIZE;

Size = dc.gettextextent (m_strtitle);

CFont * OldFont = Dc.selectObject (& m_font);

Dc.setbkmode (transparent);

ColorRef OldColor = DC.SettextColor (DLG_TITLE_COLOR_TOP); // :: getSyscolor (color_3dshadow);

OldColor = DC.SETTEXTCOLOR (DLG_TITLE_COLOR_TOP);

CRECT RCTOPTITLE (Title_text_TOP, Size.cx Title_text_left 1, (Title_Text_top Size.cy);

Dc.drawtext (m_strtitle, & rctoptitle, dt_left | dt_vcenter | dt_singlex);

Dc.SetTextColor (OldColor);

Dc.selectObject (Oldfont);

}

}

Bool writemails :: initReadDialog ()

{

M_STRTITLE.LOADSTRING (IDS_STRING_TITE_READMAIL_DIALOG);

CRECT RECT (0, 0, 0);

GetWindowRect (& Re);

m_hrgn = CREATEWNDRGN (Rect.width (), Rect.Height ());

SetwindowRgn (M_HRGN, TRUE);

Setwindowpos (NULL, Rect.Left, Rect.top, Rect.width (), Rect.Height (), SW_SHOW);

// add the button

m_btnclose.create (Rect.width () - 27,

4,

m_pbitmap,

CRECT (DLG_BTN_CLOSE_TL_X, DLG_BTN_CLOSE_TL_Y, DLG_BTN_CLOSE_BR_X-1, DLG_BTN_CLOSE_BR_Y),

IDCANCEL,

THIS);

M_BTNDOWNLOADFILE.CREATE (383,

80,

m_pbitmap,

CRECT (0, 109, 285, 125),

IDC_CMD_DOWN_FILE,

THIS);

m_btnquit.create (Rect.width () - 79,

Rect.height () - 38,

m_pbitmap,

CRECT (0,188,241,211),

IDCANCEL,

THIS);

m_btnreply.create (Rect.width () - 79-60 / * withe * / - 10 / * MAGIN * /,

Rect.height () - 38,

m_pbitmap,

CRECT (0,213,241,236),

IDC_Button_Reply,

THIS);

// set the static lable

M_LABTITE.SETTEXTCOLOR (RGB (0, 0, 0)). SetTransparent (TRUE);

M_Labdetail.SettextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

M_Labto.setTextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

CString Str;

Str.LoadString (IDS_STRING_LIST_HEAD_FROM);

m_labto.settext (str);

M_LabattachFile.SetTextColor (RGB (0, 0, 0)). SetTransparent (TRUE);

// set the Edit Contrl

m_edtto.showwindow;

m_edtfrom.ShowWindow (TRUE);

Return True;

}

转载请注明原文地址:https://www.9cbs.com/read-64179.html

New Post(0)