亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmaloglistbox.cpp

?? 日志表控件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// ==========================================================================
// Les Fonctions Relatives aux messages de la boite de dialogue
// ==========================================================================

BOOL MMALogbookDlgProc_Destroy(HWND hwnd)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  pcLogbookDlg->m_cMMALogListBox.Detach();

  if (pcLogbookDlg->m_hListBox)
   {
    DestroyWindow(pcLogbookDlg->m_hListBox);
    pcLogbookDlg->m_hListBox = NULL;
   }
  
  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_InitDialog(HWND hwnd, HWND hwndFocus, LPARAM lInitParam)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)lInitParam;

  SetWindowLong(hwnd, GWL_USERDATA, (LONG)pcLogbookDlg);

  HMENU hSysMenu = GetSystemMenu(hwnd,FALSE);

  int iSysCount = GetMenuItemCount(hSysMenu);

  EnableMenuItem(hSysMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);

  MENUITEMINFO stMII;

  // Add Separator line to system menu
  memset(&stMII, 0, sizeof(stMII));

  stMII.cbSize   = sizeof(stMII);
  stMII.fMask    = MIIM_TYPE;
  stMII.fType    = MFT_SEPARATOR;
  
  InsertMenuItem(hSysMenu, iSysCount - 2, TRUE, &stMII);

  // Add new string to system menu
  memset(&stMII, 0, sizeof(stMII));

  stMII.cbSize     = sizeof(stMII);
  stMII.fMask      = MIIM_TYPE | MIIM_ID;
  stMII.fType      = MFT_STRING;
  stMII.dwTypeData = "Printer Setup";
  stMII.cch        = 13;
  stMII.wID        = 10000;
  
  InsertMenuItem(hSysMenu, iSysCount - 1, TRUE, &stMII);

  // Add new string to system menu
  memset(&stMII, 0, sizeof(stMII));

  stMII.cbSize     = sizeof(stMII);
  stMII.fMask      = MIIM_TYPE | MIIM_ID | MIIM_STATE;
  stMII.fType      = MFT_STRING;
  stMII.dwTypeData = "Printer and Page Setup";
  stMII.cch        = 22;
  stMII.wID        = 10001;
  stMII.fState     = MFS_DISABLED;
  
  InsertMenuItem(hSysMenu, iSysCount, TRUE, &stMII);

  // Add new string to system menu
  memset(&stMII, 0, sizeof(stMII));

  stMII.cbSize     = sizeof(stMII);
  stMII.fMask      = MIIM_TYPE | MIIM_ID;
  stMII.fType      = MFT_STRING;
  stMII.dwTypeData = "Print";
  stMII.cch        = 5;
  stMII.wID        = 10002;
  
  InsertMenuItem(hSysMenu, iSysCount + 1, TRUE, &stMII);

  RECT stDlgRect;

  GetClientRect(hwnd, &stDlgRect);

  pcLogbookDlg->m_hListBox = CreateWindowEx(WS_EX_CLIENTEDGE,
                                            "LISTBOX",
                                            "",
                                            WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | LBS_NOINTEGRALHEIGHT | LBS_OWNERDRAWVARIABLE | LBS_NOSEL,
                                            MMALOGBOOKDLG_LEFTMARGIN,
                                            MMALOGBOOKDLG_TOPMARGIN,
                                            (stDlgRect.right - stDlgRect.left) - (MMALOGBOOKDLG_LEFTMARGIN + MMALOGBOOKDLG_RIGHTMARGIN),
                                            (stDlgRect.bottom - stDlgRect.top) - (MMALOGBOOKDLG_TOPMARGIN + MMALOGBOOKDLG_BOTTOMMARGIN),
                                            hwnd,
                                            (HMENU)1000,
                                            pcLogbookDlg->m_hInstance,
                                            0);

  if (pcLogbookDlg->m_hDlgFont)
   SendMessage(pcLogbookDlg->m_hListBox, WM_SETFONT, (WPARAM)pcLogbookDlg->m_hDlgFont, MAKELPARAM(TRUE,0));

  pcLogbookDlg->m_cMMALogListBox.Attach(pcLogbookDlg->m_hListBox, pcLogbookDlg->m_szFileName, pcLogbookDlg->m_lNbrLines);

  return TRUE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_DrawItem(HWND hwnd, UINT idCtl, LPDRAWITEMSTRUCT lpdis)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  if (idCtl == 1000)
   {
    MMALogListBoxWndProc_DrawItem(lpdis);
    return TRUE;
   }

  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_GetMinMaxInfo(HWND hwnd, LPMINMAXINFO lpmmi)
 {
  lpmmi->ptMinTrackSize.x = 100;
  lpmmi->ptMinTrackSize.y = 100;

  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_LButtonDown(HWND hwnd, WPARAM fwKeys, WORD xPos, WORD yPos)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  if (!pcLogbookDlg->m_bNoMove)
   PostMessage(hwnd, WM_SYSCOMMAND, SC_MOVE + 2, 0);

  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_MeasureItem(HWND hwnd, UINT idCtl, LPMEASUREITEMSTRUCT lpmis)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  if (idCtl == 1000)
   {
    MMALogListBoxWndProc_MeasureItem(lpmis);
    return TRUE;
   }

  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_NCHitTest(HWND hwnd, WORD xPos, WORD yPos, LRESULT *pResult)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  //if (!pcLogbookDlg->m_bNoMove && pcLogbookDlg->HasCaption())
  //PostMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(xPos,yPos));
  
  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_Size(HWND hwnd, WPARAM fwSizeType, WORD nWidth, WORD nHeight)
 {
  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  if (!pcLogbookDlg->m_hListBox) return FALSE;

  return SetWindowPos(pcLogbookDlg->m_hListBox,
                      NULL,
                      0,
                      0,
                      nWidth - (MMALOGBOOKDLG_LEFTMARGIN + MMALOGBOOKDLG_RIGHTMARGIN),
                      nHeight - (MMALOGBOOKDLG_TOPMARGIN + MMALOGBOOKDLG_BOTTOMMARGIN),
                      SWP_NOZORDER | SWP_NOMOVE);
 }

// --------------------------------------------------------------------------

BOOL MMALogbookDlgProc_SysCommand(HWND hwnd, WPARAM uCmdType, WORD xPos, WORD yPos)
 {
  if ((uCmdType & 0xFFF0) == SC_CLOSE)
   {
    EndDialog(hwnd, IDCANCEL);
    return TRUE;
   }

  CMMALogbookDlg *pcLogbookDlg = (CMMALogbookDlg *)GetWindowLong(hwnd, GWL_USERDATA);

  if (uCmdType == 10000 && pcLogbookDlg) // Printer Setup
   {
    pcLogbookDlg->m_cMMALogListBox.PrinterSetup(hwnd);
   }

//   else if (uCmdType == 10001 && pcLogbookDlg) // Printer and Page Setup
//    {
//     pcLogbookDlg->m_cMMALogListBox.PrinterAndPageSetup(hwnd);
//    }

  else if (uCmdType == 10002 && pcLogbookDlg) // Print
   {
    pcLogbookDlg->m_cMMALogListBox.Print(hwnd, TRUE, "logbook.txt");
   }

  return FALSE;
 }

// --------------------------------------------------------------------------

BOOL CALLBACK MMALogbookDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
  LRESULT lResult;

  if (message == WM_DESTROY && MMALogbookDlgProc_Destroy(hwnd)) return TRUE;

  else if (message == WM_INITDIALOG && MMALogbookDlgProc_InitDialog(hwnd, (HWND)wParam, lParam)) return TRUE;

  else if (message == WM_DRAWITEM && MMALogbookDlgProc_DrawItem(hwnd, (UINT)wParam, (LPDRAWITEMSTRUCT)lParam)) return TRUE;

  else if (message == WM_GETMINMAXINFO && MMALogbookDlgProc_GetMinMaxInfo(hwnd, (LPMINMAXINFO)lParam)) return TRUE;

  else if (message == WM_LBUTTONDOWN && MMALogbookDlgProc_LButtonDown(hwnd, wParam, LOWORD(lParam), HIWORD(lParam))) return TRUE;

  else if (message == WM_MEASUREITEM && MMALogbookDlgProc_MeasureItem(hwnd, (UINT)wParam, (LPMEASUREITEMSTRUCT)lParam)) return TRUE;

  else if (message == WM_NCHITTEST && MMALogbookDlgProc_NCHitTest(hwnd, LOWORD(lParam), HIWORD(lParam), &lResult)) return lResult;

  else if (message == WM_SIZE && MMALogbookDlgProc_Size(hwnd, wParam, LOWORD(lParam), HIWORD(lParam))) return TRUE;

  else if (message == WM_SYSCOMMAND && MMALogbookDlgProc_SysCommand(hwnd, wParam, LOWORD(lParam), HIWORD(lParam))) return TRUE;

  return FALSE;
 }

/////////////////////////////////////////////////////////////////////////////
// class CMMALogListBoxItemMemory

CMMALogListBoxItemMemory::CMMALogListBoxItemMemory()
 {
  m_bNew  = FALSE;
  m_lType = 0;
  m_hFont = NULL;

  memset(m_szText       , 0, sizeof(m_szText      ));
  memset(&m_stSystemTime, 0, sizeof(m_stSystemTime));
  memset(&m_stLogFont   , 0, sizeof(m_stLogFont   ));

  memset(&m_stTimeColors, 0, sizeof(m_stTimeColors));
  memset(&m_stTypeColors, 0, sizeof(m_stTypeColors));
  memset(&m_stTextColors, 0, sizeof(m_stTextColors));
 }

// --------------------------------------------------------------------------

CMMALogListBoxItemMemory::~CMMALogListBoxItemMemory()
 {
 }

/////////////////////////////////////////////////////////////////////////////
// class CMMALogListBox

CMMALogListBox::CMMALogListBox()
 {
  memset(m_szPersonal, 0, sizeof(m_szPersonal));

  m_hListBox     = NULL;
  m_hFile        = -1;
  m_bInitialized = FALSE;
  m_lBias        = 0;
  m_lNbrLines    = 0;
  m_hPrintDC     = NULL;

  TIME_ZONE_INFORMATION stTZI;

  if (GetTimeZoneInformation(&stTZI) != TIME_ZONE_ID_INVALID)
   {
    m_lBias = ((stTZI.Bias + stTZI.DaylightBias) / 60) * -1;
   }

  for (int I=0; I<4; I++)
   {
    m_clrDebugText[I] = GetSysColor(COLOR_WINDOWTEXT);
    m_clrDebugBk[I]   = GetSysColor(COLOR_WINDOW);
   }

  memset(m_szFileName, 0, sizeof(m_szFileName));
 }

// --------------------------------------------------------------------------

CMMALogListBox::~CMMALogListBox()
 {
  Detach();
 }

// --------------------------------------------------------------------------
// PROTECTED STATIC MEMBERS
// --------------------------------------------------------------------------

BOOL CMMALogListBox::DeleteListBoxString(HWND hListBox, int iIndex)
 {
  if (hListBox == NULL) return FALSE;

  LINEDATA_MEMORY *pstLDM = (LINEDATA_MEMORY *)SendMessage(hListBox, LB_GETITEMDATA, (WPARAM)iIndex, 0L);

  if ((LRESULT)pstLDM != LB_ERR)
   {
    if (pstLDM->hFont) DeleteObject(pstLDM->hFont);

    delete pstLDM;
   }

  if (SendMessage(hListBox, LB_DELETESTRING, (WPARAM)iIndex, 0L) == LB_ERR) return FALSE;

  return TRUE;
 }

// --------------------------------------------------------------------------

long CMMALogListBox::GetExtentForEntireControl(HWND hListBox)
 {
  HFONT hFont, hOldFont;
  HDC   hDC = GetDC(hListBox);

  TEXTMETRIC stTM;
  SIZE       stSize;
  char       szText[1024];
  long       lMaxCX = 0;

  for (int I=0; I<SendMessage(hListBox, LB_GETCOUNT, 0L, 0L); I++)
   {
    LINEDATA_MEMORY *pstLDM = GetItemData(hListBox,I);

    if (!pstLDM) continue;
    
    hFont = pstLDM->hFont;

    if (!hFont) hFont = (HFONT)SendMessage(hListBox, WM_GETFONT, 0L, 0L);

    if (!hFont) continue;

    hOldFont = (HFONT)SelectObject(hDC, hFont);

    GetTextMetrics(hDC, &stTM);

    strcpy(szText, pstLDM->stLDF.szText);

    GetTextExtentPoint32(hDC, szText, strlen(szText), &stSize);

    stSize.cx += stTM.tmAveCharWidth;

    if (lMaxCX <= stSize.cx) lMaxCX = stSize.cx;

    SelectObject(hDC, hOldFont);
   }

  SelectObject(hDC, hOldFont);

  ReleaseDC(hListBox, hDC);

  return lMaxCX;
 }

// --------------------------------------------------------------------------

long CMMALogListBox::GetExtentForString(HWND hListBox, HFONT hFont, LPCTSTR lpszItem)
 {
  HDC   hDC;
  HFONT hOldFont;

  hDC = GetDC(hListBox);

  if (!hFont) hFont = (HFONT)SendMessage(hListBox, WM_GETFONT, 0L, 0L);

  if (hFont)
   {
    hOldFont = (HFONT)SelectObject(hDC, hFont);

    TEXTMETRIC stTM;
    SIZE       stSize;

    GetTextMetrics(hDC, &stTM);

    GetTextExtentPoint32(hDC, lpszItem, strlen(lpszItem), &stSize);

    stSize.cx += stTM.tmAveCharWidth;

    SelectObject(hDC, hOldFont);
    
    ReleaseDC(hListBox, hDC);

    return (long)stSize.cx;
   }

  ReleaseDC(hListBox, hDC);

  return 0L;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清不卡一区| 成人中文字幕电影| 日韩精品在线网站| 激情综合色播五月| 久久久.com| 99久久免费国产| 一区二区理论电影在线观看| 欧美日韩精品福利| 另类欧美日韩国产在线| 国产欧美日韩亚州综合| 成人免费高清视频| 一区二区三区在线视频观看 | 精油按摩中文字幕久久| 久久青草欧美一区二区三区| av资源站一区| 日韩精品国产欧美| 国产亚洲欧美日韩日本| 色狠狠综合天天综合综合| 五月激情综合婷婷| 国产精品你懂的在线欣赏| 色婷婷综合久久久| 久久超碰97人人做人人爱| 亚洲欧洲成人精品av97| 欧美猛男gaygay网站| 国产精品一区一区三区| 亚洲综合色丁香婷婷六月图片| 日韩免费看网站| 91小视频在线免费看| 日本vs亚洲vs韩国一区三区 | 1000部国产精品成人观看| 欧美亚洲国产一区二区三区va | 亚洲精品一二三区| 欧美一区二区不卡视频| 成人av在线资源| 丝袜美腿高跟呻吟高潮一区| 国产蜜臀97一区二区三区| 在线精品视频一区二区三四| 久久99日本精品| 日韩伦理电影网| 久久亚洲精品小早川怜子| 欧美午夜片在线看| 成人午夜激情影院| 国产日韩欧美麻豆| 北岛玲一区二区三区四区| 免费国产亚洲视频| 亚洲一二三四区| 中文字幕二三区不卡| 欧美一级欧美三级| 色婷婷久久99综合精品jk白丝| 国产一区二区网址| 轻轻草成人在线| 亚洲成人777| 日韩一区欧美小说| 中文字幕欧美区| 欧美电视剧在线观看完整版| 欧美丝袜第三区| 色综合久久久久综合体| 成人免费视频视频在线观看免费 | 亚洲免费观看高清完整版在线观看熊 | 97成人超碰视| 国产精品正在播放| 精品一二三四区| 青青草国产精品97视觉盛宴| 亚洲午夜免费福利视频| 亚洲黄色小视频| 日韩理论片一区二区| 欧美激情一区在线| 国产欧美日韩精品在线| 久久精品亚洲麻豆av一区二区| 制服丝袜亚洲色图| 777亚洲妇女| 欧美日韩国产一级片| 欧美伊人久久久久久午夜久久久久| 99这里都是精品| 91在线无精精品入口| 成人18视频日本| 91免费视频观看| 色哟哟一区二区三区| 色香色香欲天天天影视综合网| 91女人视频在线观看| 91免费看`日韩一区二区| 日本韩国欧美国产| 欧美三级日韩三级国产三级| 欧美欧美欧美欧美首页| 在线不卡欧美精品一区二区三区| 欧美日韩国产中文| 日韩免费在线观看| 国产亚洲精品aa午夜观看| 久久精品亚洲一区二区三区浴池| 国产欧美日韩精品在线| 国产精品久久久久桃色tv| 中文字幕视频一区| 一区二区三区在线视频免费观看| 亚洲成av人片www| 六月丁香婷婷色狠狠久久| 国产精品综合久久| gogo大胆日本视频一区| 色天天综合色天天久久| 在线成人av网站| 精品国产三级a在线观看| 久久久不卡影院| 亚洲另类一区二区| 青青草原综合久久大伊人精品 | 亚洲第一久久影院| 国产综合色精品一区二区三区| 丁香五精品蜜臀久久久久99网站| av在线播放一区二区三区| 精品视频色一区| 欧美精品一区二区高清在线观看| 亚洲国产成人私人影院tom| 亚洲最大的成人av| 精品一区二区三区欧美| 成人小视频免费在线观看| 欧美色图激情小说| 2022国产精品视频| 一区二区三区久久| 激情六月婷婷久久| 欧美亚洲高清一区| 国产性天天综合网| 亚洲一区二区影院| 国产成人精品免费网站| 精品污污网站免费看| 国产欧美日韩中文久久| 亚洲第一狼人社区| 成人永久看片免费视频天堂| 欧美日韩国产三级| 椎名由奈av一区二区三区| 久久精品国产亚洲aⅴ| 色婷婷一区二区| 欧美激情中文字幕| 美女视频第一区二区三区免费观看网站| 成人av小说网| 日韩美一区二区三区| 亚洲精品视频一区| 东方欧美亚洲色图在线| 91精品国产综合久久久蜜臀粉嫩| 亚洲桃色在线一区| 国产一区二区精品久久99| 欧美精品日韩精品| 亚洲精品免费一二三区| 国产精品自拍一区| 91精品国产日韩91久久久久久| 亚洲婷婷综合色高清在线| 韩国一区二区视频| 7777精品伊人久久久大香线蕉| 国产精品色呦呦| 国产一区二区免费看| 日韩一区二区免费视频| 亚洲成人手机在线| 在线日韩av片| 日韩毛片精品高清免费| 成人国产精品免费网站| 久久久久久电影| 精品一区二区三区在线视频| 欧美喷水一区二区| 亚洲一级二级在线| 欧美午夜电影在线播放| 亚洲你懂的在线视频| av午夜精品一区二区三区| 中文字幕av不卡| 国产成+人+日韩+欧美+亚洲| 精品播放一区二区| 国模少妇一区二区三区| 欧美精品一区二区三区一线天视频| 日韩**一区毛片| 日韩一区二区免费在线电影| 日本在线观看不卡视频| 欧美一区二区在线观看| 热久久免费视频| 日韩欧美电影一区| 久久99精品国产91久久来源| 日韩精品在线看片z| 紧缚奴在线一区二区三区| 久久免费精品国产久精品久久久久| 国产一区欧美二区| 国产视频一区在线播放| 成人h版在线观看| 1000部国产精品成人观看| 91成人免费网站| 香蕉成人伊视频在线观看| 欧美一区二区三区免费大片| 老司机免费视频一区二区| 久久免费美女视频| 成人avav在线| 亚洲国产中文字幕在线视频综合| 欧美色区777第一页| 蜜桃视频免费观看一区| 久久精品一区二区三区不卡牛牛| 国产成人在线观看| 亚洲欧美日韩一区二区三区在线观看| 色噜噜久久综合| 性欧美疯狂xxxxbbbb| 精品国产乱码久久久久久久| 国产馆精品极品| 亚洲一区二区三区四区在线| 欧美一区二区三区在线电影| 国产精品亚洲一区二区三区在线| 亚洲色欲色欲www| 日韩一级黄色大片| 国产成人自拍网|