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

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

?? mdi_unit.c

?? An advanced text editor
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <windows.h>
#include <commctrl.h>

#include "mdi_unit.rh"

#define ID_STATUSBAR       4997
#define ID_TOOLBAR         4998

#define ID_MDI_CLIENT      4999
#define ID_MDI_FIRSTCHILD  50000

#define IDC_CHILD_EDIT      2000

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK MDIChildWndProc(HWND hwnd, UINT Message, WPARAM wParam,
   LPARAM lParam);

char g_szAppName[] = "MyMDIWindow";
char g_szChild[] = "MyMDIChild";
HINSTANCE g_hInst;
HWND g_hMDIClient, g_hStatusBar, g_hToolBar;
HWND g_hMainWindow;

BOOL LoadFile(HWND hEdit, LPSTR pszFileName)
{
   HANDLE hFile;
   BOOL bSuccess = FALSE;

   hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
      OPEN_EXISTING, NULL, NULL);
   if(hFile != INVALID_HANDLE_VALUE)
   {
      DWORD dwFileSize;
      dwFileSize = GetFileSize(hFile, NULL);
      if(dwFileSize != 0xFFFFFFFF)
      {
         LPSTR pszFileText;
         pszFileText = LPSTR(GlobalAlloc(GPTR, dwFileSize + 1));
         if(pszFileText != NULL)
         {
            DWORD dwRead;
            if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
            {
               pszFileText[dwFileSize] = 0; // Null terminator
               if(SetWindowText(hEdit, pszFileText))
                  bSuccess = TRUE; // It worked!
            }
            GlobalFree(pszFileText);
         }
      }
      CloseHandle(hFile);
   }
   return bSuccess;
}

BOOL SaveFile(HWND hEdit, LPSTR pszFileName)
{
   HANDLE hFile;
   BOOL bSuccess = FALSE;

   hFile = CreateFile(pszFileName, GENERIC_WRITE, NULL, NULL,
      CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
   if(hFile != INVALID_HANDLE_VALUE)
   {
      DWORD dwTextLength;
      dwTextLength = GetWindowTextLength(hEdit);
      if(dwTextLength > 0)// No need to bother if there's no text.
      {
         LPSTR pszText;
         pszText = LPSTR(GlobalAlloc(GPTR, dwTextLength + 1));
         if(pszText != NULL)
         {
            if(GetWindowText(hEdit, pszText, dwTextLength + 1))
            {
               DWORD dwWritten;
               if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))
                  bSuccess = TRUE;
            }
            GlobalFree(pszText);
         }
      }
      CloseHandle(hFile);
   }
   return bSuccess;
}

BOOL GetFileName(HWND hwnd, LPSTR pszFileName, BOOL bSave)
{
   OPENFILENAME ofn;

   ZeroMemory(&ofn, sizeof(ofn));
   pszFileName[0] = 0;

   ofn.lStructSize = sizeof(ofn);
   ofn.hwndOwner = hwnd;
   ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
   ofn.lpstrFile = pszFileName;
   ofn.nMaxFile = MAX_PATH;
   ofn.lpstrDefExt = "txt";

   if(bSave)
   {
      ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY |
         OFN_OVERWRITEPROMPT;
      if(!GetSaveFileName(&ofn))
         return FALSE;
   }
   else
   {
      ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
      if(!GetOpenFileName(&ofn))
         return FALSE;
   }
   return TRUE;
}

#pragma argsused
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
   LPSTR lpszCmdParam, int nCmdShow)
{
   MSG  Msg;
   WNDCLASSEX WndClassEx;

   InitCommonControls();

   g_hInst = hInstance;

   WndClassEx.cbSize          = sizeof(WNDCLASSEX);
   WndClassEx.style           = CS_HREDRAW | CS_VREDRAW;
   WndClassEx.lpfnWndProc     = WndProc;
   WndClassEx.cbClsExtra      = 0;
   WndClassEx.cbWndExtra      = 0;
   WndClassEx.hInstance       = hInstance;
   WndClassEx.hIcon           = LoadIcon(NULL, IDI_APPLICATION);
   WndClassEx.hCursor         = LoadCursor(NULL, IDC_ARROW);
   WndClassEx.hbrBackground   = (HBRUSH)(COLOR_3DSHADOW+1);
   WndClassEx.lpszMenuName       = "MAIN";
   WndClassEx.lpszClassName   = g_szAppName;
   WndClassEx.hIconSm           = LoadIcon(NULL, IDI_APPLICATION);

   if(!RegisterClassEx(&WndClassEx))
   {
      MessageBox(0, "Could Not Register Window", "Oh Oh...",
         MB_ICONEXCLAMATION | MB_OK);
      return -1;
   }

   WndClassEx.lpfnWndProc     = MDIChildWndProc;
   WndClassEx.lpszMenuName       = NULL;
   WndClassEx.lpszClassName   = g_szChild;
   WndClassEx.hbrBackground   = (HBRUSH)(COLOR_3DFACE+1);

   if(!RegisterClassEx(&WndClassEx))
   {
      MessageBox(0, "Could Not Register Child Window", "Oh Oh...",
         MB_ICONEXCLAMATION | MB_OK);
      return -1;
   }

    g_hMainWindow = CreateWindowEx(NULL, g_szAppName,
      "Text Editor", WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
      CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
      NULL, NULL, hInstance, NULL);

   if (g_hMainWindow == NULL){
      MessageBox(0, "No Window", "Oh Oh...", MB_ICONEXCLAMATION | MB_OK);
      return -1;
   }

   ShowWindow(g_hMainWindow, nCmdShow);
   UpdateWindow(g_hMainWindow);

   while(GetMessage(&Msg, NULL, 0, 0))
   {
      if (!TranslateMDISysAccel(g_hMDIClient, &Msg))
      {
         TranslateMessage(&Msg);
         DispatchMessage(&Msg);
      }
   }
   return Msg.wParam;
}


LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
   switch(Message)
   {
      case WM_CREATE:
      {
         CLIENTCREATESTRUCT ccs;
         int iStatusWidths[] = {200, 300, -1};
         TBADDBITMAP tbab;
         TBBUTTON tbb[9];

         // Find window menu where children will be listed
         ccs.hWindowMenu  = GetSubMenu(GetMenu(hwnd), 2);
         ccs.idFirstChild = ID_MDI_FIRSTCHILD;
         g_hMDIClient = CreateWindowEx(WS_EX_CLIENTEDGE, "mdiclient", NULL,
            WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL,
            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
            hwnd, (HMENU)ID_MDI_CLIENT, g_hInst, (LPVOID)&ccs);
         ShowWindow(g_hMDIClient, SW_SHOW);

         g_hStatusBar = CreateWindowEx(0, STATUSCLASSNAME, NULL,
            WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 0, 0, 0, 0,
            hwnd, (HMENU)ID_STATUSBAR, g_hInst, NULL);
         SendMessage(g_hStatusBar, SB_SETPARTS, 3, (LPARAM)iStatusWidths);
         SendMessage(g_hStatusBar, SB_SETTEXT, 2, (LPARAM)"Toolbar & Statusbar Example");

         g_hToolBar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
            WS_CHILD | WS_VISIBLE, 0, 0, 0, 0,
            hwnd, (HMENU)ID_TOOLBAR, g_hInst, NULL);

         // Send the TB_BUTTONSTRUCTSIZE message, which is required for
         // backward compatibility.
         SendMessage(g_hToolBar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);

         tbab.hInst = HINST_COMMCTRL;
         tbab.nID = IDB_STD_SMALL_COLOR;
         SendMessage(g_hToolBar, TB_ADDBITMAP, 0, (LPARAM)&tbab);

         ZeroMemory(tbb, sizeof(tbb));

         tbb[0].iBitmap = STD_FILENEW;
         tbb[0].fsState = TBSTATE_ENABLED;
         tbb[0].fsStyle = TBSTYLE_BUTTON;
         tbb[0].idCommand = CM_FILE_NEW;

         tbb[1].iBitmap = STD_FILEOPEN;
         tbb[1].fsState = TBSTATE_ENABLED;
         tbb[1].fsStyle = TBSTYLE_BUTTON;
         tbb[1].idCommand = CM_FILE_OPEN;

         tbb[2].iBitmap = STD_FILESAVE;
         tbb[2].fsStyle = TBSTYLE_BUTTON;
         tbb[2].idCommand = CM_FILE_SAVE;

         tbb[3].fsStyle = TBSTYLE_SEP;

         tbb[4].iBitmap = STD_CUT;
         tbb[4].fsStyle = TBSTYLE_BUTTON;
         tbb[4].idCommand = CM_EDIT_CUT;

         tbb[5].iBitmap = STD_COPY;
         tbb[5].fsStyle = TBSTYLE_BUTTON;
         tbb[5].idCommand = CM_EDIT_COPY;

         tbb[6].iBitmap = STD_PASTE;
         tbb[6].fsStyle = TBSTYLE_BUTTON;
         tbb[6].idCommand = CM_EDIT_PASTE;

         tbb[7].fsStyle = TBSTYLE_SEP;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
92精品国产成人观看免费| 国产99久久久精品| 在线观看亚洲精品| 亚洲综合免费观看高清完整版在线| 97久久超碰国产精品电影| 日韩美女视频一区二区| 一本色道久久加勒比精品| 亚洲图片欧美综合| 制服.丝袜.亚洲.中文.综合| 免费看日韩精品| 国产亚洲精品久| 北岛玲一区二区三区四区| 一区二区三区 在线观看视频| 欧美日本一道本| 精东粉嫩av免费一区二区三区| 国产清纯在线一区二区www| 99在线精品一区二区三区| 亚洲一区二区美女| 日韩精品中文字幕一区二区三区 | 亚洲色图清纯唯美| 在线国产电影不卡| 精品夜夜嗨av一区二区三区| 国产精品美女视频| 欧美精品黑人性xxxx| 黄页视频在线91| 亚洲欧美日韩中文字幕一区二区三区| 欧美中文字幕一区二区三区| 麻豆精品视频在线观看| 国产精品久久久久久久久动漫| 欧美四级电影在线观看| 久久99久久99小草精品免视看| 国产精品另类一区| 91精品国产综合久久久久久| 成人爽a毛片一区二区免费| 午夜视频在线观看一区二区| 亚洲美女视频在线观看| 欧美日韩精品高清| 成人免费看片app下载| 日韩精品电影在线| 成人欧美一区二区三区白人| 欧美一级欧美三级在线观看| 成人爱爱电影网址| 久久精品国产免费| 亚洲午夜久久久久久久久电影院| 久久久三级国产网站| 欧美午夜精品免费| 成人黄色片在线观看| 久久99精品久久久久久| 一区二区三区高清在线| 国产午夜精品久久久久久免费视| 欧美日韩大陆在线| 一本色道久久综合亚洲91 | 成人免费小视频| 色爱区综合激月婷婷| 午夜伊人狠狠久久| 亚洲精品乱码久久久久| 精品久久国产老人久久综合| 在线中文字幕不卡| voyeur盗摄精品| 国产在线视频不卡二| 青青草伊人久久| 香蕉成人伊视频在线观看| 亚洲欧美另类小说| 国产精品国产三级国产aⅴ中文 | 久久久91精品国产一区二区精品 | 久久精品一区二区三区不卡牛牛| 香蕉久久夜色精品国产使用方法 | 26uuu久久综合| 秋霞国产午夜精品免费视频| 欧美剧情片在线观看| 亚洲一区在线观看免费| 91女神在线视频| 亚洲美女屁股眼交3| 99国产精品久久久久久久久久久| 国产蜜臀av在线一区二区三区| 精品一二三四区| 久久嫩草精品久久久精品| 亚洲丝袜美腿综合| ww亚洲ww在线观看国产| 久久人人爽爽爽人久久久| 欧美精品一区二区三区很污很色的| 日韩视频免费直播| 日韩欧美视频一区| www国产精品av| 久久久99精品久久| 国产精品福利电影一区二区三区四区 | 三级亚洲高清视频| 视频一区视频二区中文| 蜜桃一区二区三区在线| 久久精品国产亚洲5555| 国产一区三区三区| 成人小视频在线观看| 波多野结衣中文字幕一区| 99久久精品国产观看| 欧美伊人久久大香线蕉综合69| 欧美日韩电影在线播放| 欧美一级二级三级乱码| 2021久久国产精品不只是精品| 欧美mv日韩mv亚洲| 国产日韩精品一区| 亚洲免费视频中文字幕| 亚洲成人一区二区| 久久99精品视频| 不卡的av在线播放| 在线中文字幕一区二区| 欧美mv日韩mv国产网站| 国产精品久久久久一区二区三区| 亚洲摸摸操操av| 奇米亚洲午夜久久精品| 国产精品538一区二区在线| 99久久免费精品| 欧美挠脚心视频网站| 欧美精品一区二区在线播放| 最新日韩av在线| 日韩电影在线观看电影| 国产精品羞羞答答xxdd| 色94色欧美sute亚洲线路一ni| 日韩写真欧美这视频| 国产精品国产a| 日本午夜一区二区| www.66久久| 精品国产乱子伦一区| 亚洲欧美另类综合偷拍| 激情国产一区二区| 欧美亚洲免费在线一区| 久久久精品免费网站| 午夜欧美视频在线观看| 国产不卡视频在线播放| 欧美精品乱码久久久久久| 国产精品免费人成网站| 另类小说一区二区三区| 在线看国产一区| 国产精品―色哟哟| 久久精品国产亚洲高清剧情介绍 | 欧美不卡在线视频| 亚洲国产中文字幕在线视频综合| 国产伦精品一区二区三区免费迷| 欧美色中文字幕| 国产精品美女一区二区在线观看| 免费在线欧美视频| 欧美亚洲一区三区| 中文字幕一区二区三区四区| 国产一区二区三区在线看麻豆| 欧美亚洲国产一区二区三区va| 国产精品麻豆网站| 极品销魂美女一区二区三区| 欧美日韩免费观看一区三区| 亚洲日本一区二区| 国产91在线|亚洲| 久久久久99精品一区| 青椒成人免费视频| 7777精品伊人久久久大香线蕉| 免费成人美女在线观看.| 色偷偷久久人人79超碰人人澡| 欧美经典一区二区三区| 久久精品999| 日韩三级在线观看| 日本美女一区二区| 欧美精品第1页| 五月天视频一区| 欧美肥妇毛茸茸| 亚洲www啪成人一区二区麻豆| 欧美性xxxxxxxx| 一区二区三区四区精品在线视频 | 在线免费观看日本一区| 亚洲视频免费在线观看| av不卡在线播放| 中文字幕中文在线不卡住| 国产成人亚洲精品狼色在线| 久久久美女毛片| 国产乱码精品一区二区三区av| 精品国产成人系列| 黄页视频在线91| 国产欧美一区二区精品性色超碰| 国产精品一区专区| 国产精品私人影院| 99久久伊人网影院| 一二三区精品视频| 欧美久久一二区| 日本成人在线网站| 久久综合色一综合色88| 国产剧情av麻豆香蕉精品| 国产精品午夜久久| 色综合中文综合网| 免费日韩伦理电影| 精品国产髙清在线看国产毛片| 国产毛片精品视频| 国产精品久久久久久久蜜臀| 99热精品一区二区| 亚洲成人av一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 久久黄色级2电影| 国产欧美日韩另类视频免费观看| 91丝袜高跟美女视频| 亚洲3atv精品一区二区三区| 精品国产不卡一区二区三区| av亚洲精华国产精华精| 亚洲第一福利一区| 精品动漫一区二区三区在线观看 | 日本精品一区二区三区高清 |