-
-
Save baoo777/1759063b5e90cc33a157592ab9b6adae to your computer and use it in GitHub Desktop.
TextWindow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ | |
| ByVal lpClassName As String, _ | |
| ByVal lpWindowName As String) As Long | |
| Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ | |
| ByVal hWnd1 As Long, _ | |
| ByVal hWnd2 As Long, _ | |
| ByVal lpsz1 As String, _ | |
| ByVal lpsz2 As String) As Long | |
| Private Declare Function GetCursorPos Lib "user32" ( _ | |
| lpPoint As POINTAPI) As Long | |
| Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ | |
| ByVal hwnd As Long, _ | |
| ByVal wMsg As Long, _ | |
| ByVal wParam As Long, _ | |
| lParam As Any) As Long | |
| Private Declare Function SendMessageB Lib "user32" Alias "SendMessageA" ( _ | |
| ByVal hwnd As Long, _ | |
| ByVal wMsg As Long, _ | |
| ByVal wParam As Long, _ | |
| ByVal lParam As Long) As Long | |
| Private Type RECT | |
| Left As Long | |
| Top As Long | |
| Right As Long | |
| Bottom As Long | |
| End Type | |
| Private Type WNDCLASSEX | |
| cbSize As Long | |
| style As Long | |
| lpfnWndProc As Long | |
| cbClsExtra As Long | |
| cbWndExtra As Long | |
| hInstance As Long | |
| hIcon As Long | |
| hCursor As Long | |
| hbrBackground As Long | |
| lpszMenuName As String | |
| lpszClassName As String | |
| hIconSm As Long | |
| End Type | |
| Private Type POINTAPI | |
| X As Long | |
| Y As Long | |
| End Type | |
| Private Type MSG | |
| hwnd As Long | |
| message As Long | |
| wParam As Long | |
| lParam As Long | |
| time As Long | |
| pt As POINTAPI | |
| End Type | |
| Private Type LOGPEN | |
| lopnStyle As Long | |
| lopnWidth As POINTAPI | |
| lopnColor As Long | |
| End Type | |
| Private Type PAINTSTRUCT | |
| hDC As Long | |
| fErase As Long | |
| rcPaint As RECT | |
| fRestore As Long | |
| fIncUpdate As Long | |
| rgbReserved As Byte | |
| End Type | |
| Private Const HWND_TOP = 0 | |
| Private Const PS_SOLID = 0 | |
| Private Const PS_DASH = 1 | |
| Private Const PS_DOT = 2 | |
| Private Const PS_DASHDOT = 3 | |
| Private Const PS_DASHDOTDOT = 4 | |
| Private Const PS_NULL = 5 | |
| Private Const SRCCOPY = &HCC0020 | |
| Private G_hDC As Long | |
| Private Const CS_VREDRAW As Long = &H1 | |
| Private Const CS_HREDRAW As Long = &H2 | |
| Private Const IDI_APPLICATION As Long = 32512 | |
| Private Const IDC_ARROW As Long = 32512 | |
| Private Const WHITE_BRUSH As Long = 0 | |
| Private Const WS_OVERLAPPED As Long = &H0 | |
| Private Const WS_MAXIMIZEBOX As Long = &H10000 | |
| Private Const WS_MINIMIZEBOX As Long = &H20000 | |
| Private Const WS_THICKFRAME As Long = &H40000 | |
| Private Const WS_SYSMENU As Long = &H80000 | |
| Private Const WS_CAPTION As Long = &HC00000 | |
| Private Const WS_EX_APPWINDOW As Long = &H40000 | |
| Private Const WS_OVERLAPPEDWINDOW As Long = (WS_OVERLAPPED Or _ | |
| WS_CAPTION Or _ | |
| WS_SYSMENU Or _ | |
| WS_THICKFRAME Or _ | |
| WS_MINIMIZEBOX Or _ | |
| WS_MAXIMIZEBOX) | |
| Private Const WS_EX_CLIENTEDGE = &H200& | |
| Private Const WS_EX_TOOLWINDOW = &H80 | |
| Private Const WS_CLIPSIBLINGS = &H4000000 | |
| Private Const WS_CHILD = &H40000000 | |
| Private Const WS_VISIBLE = &H10000000 | |
| Private Const WS_POPUP = &H80000000 | |
| Private Const WS_EX_LAYERED = &H80000 '拡張ウィンドウ属 | |
| Private Const WS_EX_TRANSPARENT = &H20 | |
| Private Const WS_EX_WINDOWEDGE = &H100 | |
| Private Const WS_BORDER = &H800000 | |
| Private Const WS_DLGFRAME = &H400000 | |
| Private Const WS_VSCROLL = &H100000 | |
| Private Const WS_HSCROLL = &H200000 | |
| Private Const CCS_BOTTOM = &H3 | |
| Private Const SB_SETPARTS = &H404 | |
| Private Const SB_SETTEXT = &H401 | |
| Private Const SB_SIMPLEID = &HFF | |
| Private Const SBARS_SIZEGRIP = &H100 | |
| Private Const BS_PUSHBUTTON = &H0& | |
| Private Const BS_AUTOCHECKBOX = &H3 | |
| Private Const BS_AUTORADIOBUTTON = &H9 | |
| Private Const BS_GROUPBOX = &H7 | |
| Private Const ES_LEFT As Long = &H0 | |
| Private Const EN_UPDATE As Long = &H400 | |
| Private Const EN_VSCROLL = &H602 | |
| Private Const EN_HSCROLL = &H601 | |
| Private Const ES_AUTOHSCROLL As Long = &H80 '水平方向自動スクロール | |
| Private Const ES_AUTOVSCROLL As Long = &H40 | |
| Private Const EM_GETSEL = &HB0 | |
| Private Const ES_MULTILINE = &H4 | |
| Private Const EM_REPLACESEL = &HC2 | |
| Private Const CW_USEDEFAULT As Long = &H80000000 | |
| Private Const SW_SHOW As Long = 5 | |
| Private Const WM_LBUTTONDOWN As Long = &H201 | |
| Private Const WM_DESTROY As Long = &H2 | |
| Private Const WM_PAINT As Long = &HF | |
| Private Const WM_CREATE As Long = &H1 | |
| Private Const WM_COMMAND As Long = &H111 | |
| Private Const WM_MENUSELECT = &H11F | |
| Private Const WM_NOTIFY As Long = &H4E | |
| Private Const WM_HSCROLL As Long = &H114 | |
| Private Const WM_VSCROLL As Long = &H115 | |
| Private Const WM_SIZE = &H5 | |
| Private Const WM_GETTEXT = &HD | |
| Private Const WM_SETTEXT = &HC | |
| Private Const WM_SETFONT = &H30 | |
| Private Const WM_GETFONT = &H31 | |
| Private Const WM_KEYDOWN = &H100 | |
| Private Const APP_NAME As String = "HELLOAPP" | |
| Public APP_TITLE As String | |
| Private Const CREATE_WINDOW_WIDTH = 800 | |
| Private Const CREATE_WINDOW_HEIGHT = 300 | |
| Private Const GWL_STYLE = (-16) | |
| Private Const GWL_EXSTYLE = (-20) '拡張ウィンドウスタイル | |
| Private Const LWA_COLORKEY = 1 'crKeyを透明色として使う | |
| Private Const LWA_ALPHA = 2 'bAlphaをアルファー値として使う | |
| Private Const SWP_NOSIZE = &H1& | |
| Private Const SWP_NOMOVE = &H2& | |
| Private Const SWP_NOZORDER = &H4& | |
| Private Const SWP_FRAMECHANGED = &H20& | |
| Private Const SWP_SHOWWINDOW = &H40 | |
| Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED | |
| Private Declare Function SetLayeredWindowAttributes Lib "USER32.DLL" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal crKey As Long, _ | |
| ByVal bAlpha As Long, _ | |
| ByVal dwFlags As Long) As Long | |
| 'Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ | |
| ' (ByVal lpClassName As String, _ | |
| ' ByVal lpWindowName As String) As Long | |
| 'Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _ | |
| ' (ByVal hWndParent As Long, _ | |
| ' ByVal hwndChildAfter As Long, _ | |
| ' ByVal lpszClass As String, _ | |
| ' ByVal lpszWindow As String) As Long | |
| Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _ | |
| (ByVal lpModuleName As Long) As Long | |
| Private Declare Function LoadIcon Lib "user32" Alias "LoadIconA" _ | |
| (ByVal hInstance As Long, _ | |
| ByVal lpIconName As Long) As Long | |
| Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _ | |
| (ByVal hInstance As Long, _ | |
| ByVal lpCursorName As Long) As Long | |
| Private Declare Function GetStockObject Lib "GDI32" _ | |
| (ByVal fnObject As Long) As Long | |
| Private Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" _ | |
| (lpwcx As WNDCLASSEX) As Long | |
| Private Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" _ | |
| (ByVal lpClassName As String, _ | |
| ByVal hInstance As Long) As Long | |
| Private Declare Function AdjustWindowRectEx Lib "USER32.DLL" _ | |
| (lpRect As RECT, _ | |
| ByVal dwStyle As Long, _ | |
| ByVal bMenu As Long, _ | |
| ByVal dwExStyle As Long) As Long | |
| Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _ | |
| (ByVal dwExStyle As Long, _ | |
| ByVal lpClassName As String, _ | |
| ByVal lpWindowName As String, _ | |
| ByVal dwStyle As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal nWidth As Long, _ | |
| ByVal nHeight As Long, _ | |
| ByVal hwndParent As Long, _ | |
| ByVal hMenu As Long, _ | |
| ByVal hInstance As Long, _ | |
| lpParam As Any) As Long | |
| Private Declare Function ShowWindow Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal nCmdShow As Long) As Long | |
| Private Declare Function UpdateWindow Lib "user32" _ | |
| (ByVal lhwnd As Long) As Long | |
| Private Declare Function GetMessage Lib "user32" Alias "GetMessageA" _ | |
| (lpMsg As MSG, _ | |
| ByVal hwnd As Long, _ | |
| ByVal wMsgFilterMin As Long, _ | |
| ByVal wMsgFilterMax As Long) As Long | |
| Private Declare Function TranslateMessage Lib "user32" _ | |
| (lpMsg As MSG) As Long | |
| Private Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" _ | |
| (lpMsg As MSG) As Long | |
| Private Declare Sub PostQuitMessage Lib "user32" _ | |
| (ByVal nExitCode As Long) | |
| Private Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal wMsg As Long, _ | |
| ByVal wParam As Long, _ | |
| ByVal lParam As Long) As Long | |
| Private Declare Function Bitblt Lib "GDI32" Alias "BitBlt" _ | |
| (ByVal hdcDest As Long, _ | |
| ByVal nDX As Long, _ | |
| ByVal nDY As Long, _ | |
| ByVal nDW As Long, _ | |
| ByVal nDH As Long, _ | |
| ByVal hdcSrc As Long, _ | |
| ByVal nSX As Long, _ | |
| ByVal nSY As Long, _ | |
| ByVal dwRop As Long) As Long | |
| Private Declare Function CreateCompatibleDC Lib "gdi32.dll" _ | |
| (ByVal hDC As Long) As Long | |
| Private Declare Function CreateCompatibleBitmap Lib "gdi32.dll" _ | |
| (ByVal hDC As Long, _ | |
| ByVal nW As Long, _ | |
| ByVal nH As Long) As Long | |
| Private Declare Function SetForegroundWindow Lib "user32" _ | |
| (ByVal hwnd As Long) As Long | |
| Private Declare Function DestroyWindow Lib "user32" _ | |
| (ByVal hwnd As Long) As Long | |
| Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal lpString As String, _ | |
| ByVal cch As Long) As Long | |
| Private Declare Function GetObject Lib "GDI32" Alias "GetObjectA" _ | |
| (ByVal hObject As Long, _ | |
| ByVal nCount As Long, _ | |
| lpObject As Any) As Long | |
| Private Declare Function SelectObject Lib "gdi32.dll" _ | |
| (ByVal hDC As Long, _ | |
| ByVal hObject As Long) As Long | |
| Private Declare Function DeleteObject Lib "gdi32.dll" _ | |
| (ByVal hObject As Long) As Long | |
| Private Declare Function GetDC Lib "user32" _ | |
| (ByVal hwnd As Long) As Long | |
| Private Declare Function DeleteDC Lib "gdi32.dll" _ | |
| (ByVal hDC As Long) As Long | |
| Private Declare Function ReleaseDC Lib "gdi32.dll" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal hDC As Long) As Long | |
| Private Declare Function SetBkColor Lib "gdi32.dll" _ | |
| (ByVal hDC As Long, _ | |
| ByVal crColor As Long) As Long | |
| Private Declare Function FillRect Lib "user32" _ | |
| (ByVal hDC As Long, _ | |
| ByRef r As RECT, _ | |
| ByVal hBrush As Long) As Long | |
| Private Declare Function CreatePenIndirect Lib "gdi32.dll" _ | |
| (lpLogPen As LOGPEN) As Long | |
| Private Declare Function MoveToEx Lib "gdi32.dll" _ | |
| (ByVal hDC As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal pLastPoint As Long) As Long | |
| Private Declare Function LineTo Lib "gdi32.dll" _ | |
| (ByVal hDC As Long, _ | |
| ByVal XEnd As Long, _ | |
| ByVal YEnd As Long) As Long | |
| Private Declare Function GetDesktopWindow Lib "user32" () As Long | |
| Private Declare Function SetWindowLong Lib "USER32.DLL" Alias "SetWindowLongA" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal nIndex As Long, _ | |
| ByVal dwNewLong As Long) As Long | |
| Private Declare Function GetWindowLong Lib "USER32.DLL" Alias "GetWindowLongA" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal nIndex As Long) As Long | |
| Private Declare Function SetWindowPos Lib "USER32.DLL" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal hWndInertAfter As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal cx As Long, _ | |
| ByVal cy As Long, _ | |
| ByVal uFlags As Long) As Long | |
| Private Declare Function MoveWindow Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal nWidth As Long, _ | |
| ByVal nHeight As Long, _ | |
| ByVal bRepaint As Long) As Long | |
| Private Declare Function GetWindowRect Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| lpRect As RECT) As Long | |
| Private Declare Function BeginPaint Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| lpPaint As PAINTSTRUCT) As Long | |
| Private Declare Function EndPaint Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| lpPaint As PAINTSTRUCT) As Long | |
| Private Declare Function Chord Lib "GDI32" _ | |
| (ByVal hDC As Long, _ | |
| ByVal nLeftRect As Long, _ | |
| ByVal nTopRect As Long, _ | |
| ByVal nRightRect As Long, _ | |
| ByVal nBottomRect As Long, _ | |
| ByVal nXRadial1 As Long, _ | |
| ByVal nYRadial1 As Long, _ | |
| ByVal nXRadial2 As Long, _ | |
| ByVal nYRadial2 As Long) As Long | |
| Private Declare Function Ellipse Lib "GDI32" _ | |
| (ByVal hDC As Long, _ | |
| ByVal nLeftRect As Long, _ | |
| ByVal nTopRect As Long, _ | |
| ByVal nRightRect As Long, _ | |
| ByVal nBottomRect As Long) As Long | |
| Private Declare Function CreateSolidBrush Lib "GDI32" _ | |
| (ByVal crColor As Long) As Long | |
| Private Declare Function Rectangle Lib "GDI32" _ | |
| (ByVal hDC As Long, _ | |
| ByVal nLeftRect As Long, _ | |
| ByVal nTopRect As Long, _ | |
| ByVal nRightRect As Long, _ | |
| ByVal nBottomRect As Long) As Long | |
| Private Declare Sub InitCommonControls Lib "Comctl32.dll" () | |
| '======================= | |
| ' ファイルを開くダイアログボックス | |
| '======================= | |
| Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ | |
| Alias "GetOpenFileNameA" (lpofn As OPENFILENAME) As Long | |
| '============================= | |
| ' [ファイル名を付けて保存] ダイアログボックス | |
| '============================= | |
| Private Declare Function GetSaveFileName Lib "comdlg32.dll" _ | |
| Alias "GetSaveFileNameA" (lpofn As OPENFILENAME) As Long | |
| '=============== | |
| ' OPENFILENAME構造体 | |
| '=============== | |
| Private Type OPENFILENAME | |
| lStructSize As Long '構造体のサイズ | |
| hwndOwner As Long 'ウインドウのハンドル | |
| hInstance As Long 'インスタンスハンドル | |
| lpstrFilter As String 'フィルタ | |
| lpstrCustomFilter As String 'カスタムフィルタ | |
| nMaxCustFilter As Long 'カスタムフィルタのサイズ | |
| nFilterIndex As Long 'フィルタのインデックス | |
| lpstrFile As String 'ファイル名のバッファ | |
| nMaxFile As Long 'ファイル名のバッファのサイズ | |
| lpstrFileTitle As String 'フルパス用のバッファ | |
| nMaxFileTitle As Long 'フルパス用のバッファのサイズ | |
| lpstrInitialDir As String 'ディレクトリを指定 | |
| lpstrTitle As String 'ダイヤログボックスのタイトル | |
| flags As Long '定数(OFN_××参照) | |
| nFileOffset As Integer 'フルパスの中のファイル名までのオフセット | |
| nFileExtension As Integer '拡張子までのオフセット | |
| lpstrDefExt As String 'デフォルトの拡張子 | |
| lCustData As Long 'lpfnHookで渡すデータ | |
| lpfnHook As Long 'フック関数のポインタ | |
| lpTemplateName As String 'テンプレート名 | |
| End Type | |
| Private Const OFN_ALLOWMULTISELECT = &H200 '複数ファイルを選択可能にする | |
| Private Const OFN_CREATEPROMPT = &H2000 '指定のファイル名が存在しない時にメッセージボックスを表示 | |
| Private Const OFN_FILEMUSTEXIST = &H1000 '存在しないファイル名は入力不可 | |
| Private Const OFN_HIDEREADONLY = &H4 '読み取り専用のチェックボックスを非表示 | |
| Private Const OFN_NOCHANGEDIR = &H8 '他のサブディレクトリから選択不可 | |
| Private Const OFN_NOREADONLYRETURN = &H8000 '読み込み専用ファイルと書きこみ禁止ディレクトリの選択不可 | |
| Private Const OFN_NOVALIDATE = &H100 'ファイル名の有効性をチェックしない | |
| Private Const OFN_OVERWRITEPROMPT = &H2 '既存のファイル名を指定した時にメッセージを出す | |
| Private Const OFN_PATHMUSTEXIST = &H800 '有効なパスだけをうけつける | |
| Private Const OFN_READONLY = &H1 '読み取り専用のチェックボックスをチェック | |
| Private Const OFN_SHOWHELP = &H10 'ヘルプボタンを表示 | |
| Private Type MENUITEMINFO | |
| cbSize As Long | |
| fMask As Long | |
| fType As Long | |
| fState As Long | |
| wID As Long | |
| hSubMenu As Long | |
| hbmpChecked As Long | |
| hbmpUnchecked As Long | |
| dwItemData As Long | |
| dwTypeData As String | |
| cch As Long | |
| End Type | |
| Private Declare Function CreateMenu Lib "user32" () As Long | |
| Private Declare Function CreatePopupMenu Lib "user32" () As Long | |
| Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" _ | |
| (ByVal hMenu As Long, _ | |
| ByVal wFlags As Long, _ | |
| ByVal wIDNewItem As Long, _ | |
| ByVal lpNewItem As Any) As Long | |
| Private Declare Function DestroyMenu Lib "user32" _ | |
| (ByVal hMenu As Long) As Long | |
| Private Declare Function SetMenu Lib "user32" _ | |
| (ByVal hwnd As Long, _ | |
| ByVal hMenu As Long) As Long | |
| 'Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" _ | |
| ' (ByVal hMenu As Long, _ | |
| ' ByVal un As Long, _ | |
| ' ByVal bool As Boolean, _ | |
| ' lpcMenuItemInfo As MENUITEMINFO) As Long | |
| Private Declare Function TrackPopupMenu Lib "user32" _ | |
| (ByVal hMenu As Long, _ | |
| ByVal wFlags As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal nReserved As Long, _ | |
| ByVal hwnd As Long, _ | |
| lprc As RECT) As Long | |
| Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" _ | |
| (ByVal hMenu As Long, _ | |
| ByVal un As Long, _ | |
| ByVal b As Long, _ | |
| lpMenuItemInfo As MENUITEMINFO) As Long | |
| Private Const MF_ENABLED = 0 | |
| Private Const ID_TEST1 = 1 | |
| Private Const ID_TEST2 = 2 | |
| Private Const ID_TEST3 = 3 | |
| Private Const ID_TEST4 = 4 | |
| Private Const MF_POPUP = &H10& | |
| Public hPracBtn As Long | |
| Public hPracBtn2 As Long | |
| Public hPracTxt As Long | |
| Public hPracStatus As Long | |
| Public hPracDate As Long | |
| Public hPracTrack As Long | |
| Private strTmp() As String | |
| Private Declare Function CreateFontIndirect Lib "GDI32" Alias "CreateFontIndirectW" _ | |
| (lpLogFont As Long) As Long | |
| Private Const LF_FACESIZE = 32 | |
| Private Const FW_NORMAL = 400 | |
| Private Type LOGFONT | |
| lfHeight As Long | |
| lfWidth As Long | |
| lfEscapement As Long | |
| lfOrientation As Long | |
| lfWeight As Long | |
| lfItalic As Byte | |
| lfUnderline As Byte | |
| lfStrikeOut As Byte | |
| lfCharSet As Byte | |
| lfOutPrecision As Byte | |
| lfClipPrecision As Byte | |
| lfQuality As Byte | |
| lfPitchAndFamily As Byte | |
| 'lfFaceName(LF_FACESIZE) As Byte | |
| lfFaceName As String * 32 | |
| End Type | |
| Private Type CHOOSEFONT | |
| lStructSize As Long | |
| hwndOwner As Long | |
| hDC As Long | |
| lpLogFont As Long | |
| iPointSize As Long | |
| flags As Long | |
| rgbColor As Long | |
| lCustData As Long | |
| lpfnHook As Long | |
| lpTemplateName As String | |
| hInstance As Long | |
| lpszStyle As String | |
| nFontType As Integer | |
| iAlign As Integer | |
| nSizeMin As Long | |
| nSizeMax As Long | |
| End Type | |
| Private Declare Function CHOOSEFONT Lib "comdlg32.dll" Alias "ChooseFontA" _ | |
| (pChoosefont As CHOOSEFONT) As Long | |
| Private Type CHOOSECOLOR | |
| lStructSize As Long | |
| hwndOwner As Long | |
| hInstance As Long | |
| rgbResult As Long | |
| lpCustColors As String | |
| flags As Long | |
| lCustData As Long | |
| lpfnHook As Long | |
| lpTemplateName As String | |
| End Type | |
| Private Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA" _ | |
| (pChoosecolor As CHOOSECOLOR) As Long | |
| Private Declare Function SetTextColor Lib "GDI32" _ | |
| (ByVal hDC As Long, _ | |
| ByVal crColor As Long) As Long | |
| Private Declare Function TextOut Lib "GDI32" Alias "TextOutA" _ | |
| (ByVal hDC As Long, _ | |
| ByVal X As Long, _ | |
| ByVal Y As Long, _ | |
| ByVal lpString As String, _ | |
| ByVal nCount As Long) As Long | |
| Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ | |
| (hpvDest As Any, _ | |
| hpvSource As Any, _ | |
| ByVal cbCopy As Long) | |
| Private Declare Function GlobalLock Lib "kernel32" _ | |
| (ByVal hMem As Long) As Long | |
| Private Declare Function GlobalUnlock Lib "kernel32" _ | |
| (ByVal hMem As Long) As Long | |
| Private Declare Function GlobalAlloc Lib "kernel32" _ | |
| (ByVal wFlags As Long, _ | |
| ByVal dwBytes As Long) As Long | |
| Private Declare Function GlobalFree Lib "kernel32" _ | |
| (ByVal hMem As Long) As Long | |
| 'Private Const FW_NORMAL = 400 | |
| Private Const DEFAULT_CHARSET = 1 | |
| Private Const OUT_DEFAULT_PRECIS = 0 | |
| Private Const CLIP_DEFAULT_PRECIS = 0 | |
| Private Const DEFAULT_QUALITY = 0 | |
| Private Const DEFAULT_PITCH = 0 | |
| Private Const FF_ROMAN = 16 | |
| Private Const GMEM_MOVEABLE = &H2 | |
| Private Const GMEM_ZEROINIT = &H40 | |
| Private Const CF_PRINTERFONTS = &H2 | |
| Private Const CF_SCREENFONTS = &H1 | |
| Private Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS) | |
| Private Const CF_EFFECTS = &H100 | |
| Private Const CF_FORCEFONTEXIST = &H10000 | |
| Private Const CF_INITTOLOGFONTSTRUCT = &H40 | |
| Private Const CF_LIMITSIZE = &H2000& | |
| Private Const REGULAR_FONTTYPE = &H400 | |
| Private Declare Sub GetLocalTime Lib "KERNEL32.dll" _ | |
| (t As SYSTEMTIME) | |
| Private Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" _ | |
| (ByVal Locale As Long, _ | |
| ByVal dwFlags As Long, _ | |
| lpTime As SYSTEMTIME, _ | |
| ByVal lpFormat As Any, _ | |
| ByVal lpTimeStr As String, _ | |
| ByVal cchTime As Long) As Long | |
| Private Const LOCALE_SYSTEM_DEFAULT = 2048 | |
| Private Const LOCALE_NOUSEROVERRIDE = &H80000000 | |
| Private Const WM_USER = &H400 | |
| Private Const DATETIMEPICK_CLASS = "SysDateTimePick32" | |
| Private Const ICC_DATE_CLASSES = &H100& | |
| Private Const DTS_UPDOWN = &H1 | |
| Private Const DTS_SHOWNONE = &H2 | |
| Private Const DTS_SHORTDATEFORMAT = &H0 | |
| Private Const DTS_LONGDATEFORMAT = &H4 | |
| Private Const DTS_TIMEFORMAT = &H9 | |
| Private Const DTS_APPCANPARSE = &H10 | |
| Private Const DTS_RIGHTALIGN = &H20 | |
| Private Const DTM_GETSYSTEMTIME = &H1001& | |
| Private Const DTM_SETSYSTEMTIME = &H1002& | |
| Private Const DTM_SETFORMAT = &H1005& | |
| Private Const DTN_FIRST = -740 | |
| Private Const DTN_FIRST2 = -753 | |
| Private Const DTN_DATETIMECHANGE = DTN_FIRST2 - 6 | |
| Private Const DTN_USERSTRING = DTN_FIRST2 - 5 | |
| Private Const DTN_WMKEYDOWN = DTN_FIRST2 - 4 | |
| Private Const DTN_FORMAT = DTN_FIRST2 - 3 | |
| Private Const DTN_FORMATQUERY = DTN_FIRST2 - 2 | |
| Private Const DTN_DROPDOWN = DTN_FIRST2 - 1 | |
| Private Const DTN_CLOSEUP = DTN_FIRST2 - 0 | |
| Private Const DTN_USERSTRINGW = DTN_FIRST - 5 | |
| Private Const DTN_WMKEYDOWNW = DTN_FIRST - 4 | |
| Private Const DTN_FORMATW = DTN_FIRST - 3 | |
| Private Const DTN_FORMATQUERYW = DTN_FIRST - 2 | |
| Private Type NMHDR | |
| hwndFrom As Long | |
| idFrom As Long | |
| code As Long | |
| End Type | |
| Private Type SYSTEMTIME | |
| wYear As Integer | |
| wMonth As Integer | |
| wDayOfWeek As Integer | |
| wDay As Integer | |
| wHour As Integer | |
| wMinute As Integer | |
| wSecond As Integer | |
| wMilliseconds As Integer | |
| End Type | |
| Private Type NMDATETIMECHANGE | |
| tNMHDR As NMHDR | |
| dwFlags As Long | |
| tSYSTEMTIME As SYSTEMTIME | |
| End Type | |
| Private Const TBS_AUTOTICKS = &H1 'チックマーク(目盛)を自動的に表示する | |
| Private Const TBS_VERT = &H2 '垂直トラックバー | |
| Private Const TBS_HORZ = &H0 '水平トラックバー(デフォルト) | |
| Private Const TBS_TOP = &H4 'チックマークを上側に表示 | |
| Private Const TBS_BOTTOM = &H0 'チックマークを下側に表示(デフォルト) | |
| Private Const TBS_LEFT = &H4 'チックマークを左側に表示 | |
| Private Const TBS_RIGHT = &H0 'チックマークを右側に表示(デフォルト) | |
| Private Const TBS_BOTH = &H8 'チックマークを両側に表示 | |
| Private Const TBS_NOTICKS = &H10 'チックマークなし | |
| Private Const TBS_ENABLESELRANGE = &H20 '範囲選択を可能にする | |
| Private Const TBS_FIXEDLENGTH = &H40 'スライダーの長さを可変にできる | |
| Private Const TBS_NOTHUMB = &H80 'つまみなし | |
| Private Const TBM_GETPOS = WM_USER 'スライダーの位置を取得 | |
| Private Const TBM_GETRANGEMIN = WM_USER + 1 'スライダーの位置の最小位置の取得 | |
| Private Const TBM_GETRANGEMAX = WM_USER + 2 'スライダーの位置の最大位置の取得 | |
| Private Const TBM_GETTIC = WM_USER + 3 '特定のチックマークの位置を取得 | |
| Private Const TBM_SETTIC = WM_USER + 4 '特定のチックマークの位置を設定 | |
| Private Const TBM_SETPOS = WM_USER + 5 'スライダーの位置を設定 | |
| Private Const TBM_SETRANGE = WM_USER + 6 'スライダー位置の可変範囲の設定 | |
| Private Const TBM_SETRANGEMIN = WM_USER + 7 'スライダー位置の可変範囲の最小値の設定 | |
| Private Const TBM_SETRANGEMAX = WM_USER + 8 'スライダー位置の可変範囲の最大値の設定 | |
| Private Const TBM_CLEARTICS = WM_USER + 9 '現在のチックマークを削除 | |
| Private Const TBM_SETSEL = WM_USER + 10 'チックマークの選択範囲の設定 | |
| Private Const TBM_SETSELSTART = WM_USER + 11 'チックマークの選択範囲の終了値の設定 | |
| Private Const TBM_SETSELEND = WM_USER + 12 'チックマークの選択範囲の開始値の設定 | |
| Private Const TBM_GETPTICS = WM_USER + 14 'チックマーク位置を示す配列を指すポインタの取得 | |
| Private Const TBM_GETTICPOS = WM_USER + 15 'チックマークの物理位置の取得 | |
| Private Const TBM_GETNUMTICS = WM_USER + 16 'チックマークの数の取得 | |
| Private Const TBM_GETSELSTART = WM_USER + 17 '選択範囲の開始位置の取得 | |
| Private Const TBM_GETSELEND = WM_USER + 18 '選択範囲の終了位置の取得 | |
| Private Const TBM_CLEARSEL = WM_USER + 19 '選択範囲の解除 | |
| Private Const TBM_SETTICFREQ = WM_USER + 20 'チックマークの間隔の設定 | |
| Private Const TBM_SETPAGESIZE = WM_USER + 21 'ページサイズの設定 | |
| Private Const TBM_GETPAGESIZE = WM_USER + 22 'ページサイズの取得 | |
| Private Const TBM_SETLINESIZE = WM_USER + 23 'ラインサイズの設定 | |
| Private Const TBM_GETLINESIZE = WM_USER + 24 'ラインサイズの取得 | |
| Private Const TBM_GETTHUMBRECT = WM_USER + 25 'つまみの境界矩形の取得 | |
| Private Const TBM_GETCHANNELRECT = WM_USER + 26 'スライダーが動くチャンネルの境界矩形の取得 | |
| Private Const TBM_SETTHUMBLENGTH = WM_USER + 27 'つまみの長さの設定 | |
| Private Const TBM_GETTHUMBLENGTH = WM_USER + 28 'つまみの長さの取得 | |
| Private Const SB_PAGEDOWN = &H3 | |
| Private Const SB_PAGEUP = &H2 | |
| Private Const SB_LINEUP = &H0 | |
| Private Const SB_LINEDOWN = &H1 | |
| Private Const SB_BOTTOM = &H7 | |
| Private Const SB_TOP = &H6 | |
| Private Const SB_THUMBPOSITION = &H4 | |
| Private Const SB_THUMBTRACK = &H5 | |
| '=============TEMP================= | |
| 'システムパラメータ情報の取得API | |
| Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _ | |
| (ByVal uAction As Long, _ | |
| ByVal uParam As Long, _ | |
| ByRef lpvParam As Any, _ | |
| ByVal fuWinIni As Long) As Long | |
| Private Const SPI_GETWORKAREA = 48 | |
| Public Sub ImportText() | |
| Dim Ret As Long | |
| Ret = CreateGraph(7, 29, 720, 853) | |
| Debug.Print Ret | |
| End Sub | |
| ' ///////////////////////////////////////////////////////////////////////////////////// | |
| ' //#名称 CreateGraph | |
| ' // | |
| ' //#概要 スケジュールシートのShapeオブジェクトから呼び出される。 | |
| ' // | |
| ' //#引数 | |
| ' // | |
| ' //#戻値 | |
| ' // | |
| ' //#解説 集計結果シートから情報を取得し、進捗率をカテゴリごとに表示する | |
| ' // | |
| ' //#履歴 2011/04/12 | |
| ' // Coded by YASUTADA OOBA | |
| ' // | |
| ' ///////////////////////////////////////////////////////////////////////////////////// | |
| Public Function CreateGraph(lngLeft As Long, lngTop As Long, lngRight As Long, lngBottom As Long) As Long | |
| Dim hwnd As Long | |
| Dim dwStyle As Long | |
| Dim dwStyleEx As Long | |
| Dim wc As WNDCLASSEX | |
| Dim message As MSG | |
| Dim Ret As Long | |
| Dim tmpRECT As RECT | |
| Dim rcRect As RECT | |
| Dim lpPaint As PAINTSTRUCT | |
| Dim mWS As Long | |
| wc.cbSize = Len(wc) | |
| wc.style = CS_HREDRAW Or CS_VREDRAW | |
| wc.lpfnWndProc = FPtr(AddressOf WindowProc) | |
| wc.cbClsExtra = 0 | |
| wc.cbWndExtra = 0 | |
| wc.hInstance = GetModuleHandle(0) | |
| wc.hbrBackground = GetStockObject(WHITE_BRUSH) | |
| wc.lpszMenuName = vbNullString | |
| wc.lpszClassName = APP_NAME | |
| If RegisterClassEx(wc) = 0 Then | |
| 'UnregisterClass wc.lpszClassName, wc.hInstance | |
| Exit Function | |
| End If | |
| Ret = GetDesktopWindow() | |
| Ret = GetWindowRect(Ret, tmpRECT) | |
| rcRect.Left = lngLeft | |
| rcRect.Top = lngTop | |
| rcRect.Right = lngRight | |
| rcRect.Bottom = lngBottom | |
| dwStyleEx = WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW | |
| dwStyle = WS_CLIPSIBLINGS Or WS_OVERLAPPEDWINDOW | |
| Ret = AdjustWindowRectEx(rcRect, dwStyle, False, dwStyleEx) | |
| hwnd = CreateWindowEx(dwStyleEx, _ | |
| APP_NAME, _ | |
| APP_TITLE, _ | |
| dwStyle, _ | |
| rcRect.Left, _ | |
| rcRect.Top, _ | |
| rcRect.Right - rcRect.Left, _ | |
| rcRect.Bottom - rcRect.Top, _ | |
| 0, _ | |
| 0, _ | |
| wc.hInstance, _ | |
| 0) | |
| Dim hMenu As Long | |
| Dim hPop As Long | |
| Dim blAppend As Boolean | |
| Dim i As Long | |
| hMenu = CreateMenu() | |
| hPop = CreatePopupMenu() | |
| blAppend = AppendMenu(hMenu, MF_POPUP, hPop, "ファイル(&F)") | |
| blAppend = AppendMenu(hPop, MF_ENABLED, 1, "開く") | |
| strTmp = GetTmpTxt() | |
| If Sgn(strTmp) <> 0 Then | |
| For i = 0 To UBound(strTmp) | |
| blAppend = AppendMenu(hPop, MF_ENABLED, i + 3, strTmp(i)) | |
| Next i | |
| End If | |
| blAppend = AppendMenu(hPop, MF_ENABLED, 2, "終了") | |
| Dim hPop2 As Long | |
| hPop2 = CreatePopupMenu() | |
| blAppend = AppendMenu(hMenu, MF_POPUP, hPop2, "編集(&E)") | |
| blAppend = AppendMenu(hPop2, MF_ENABLED, 10, "フォント") | |
| blAppend = AppendMenu(hPop2, MF_ENABLED, 11, "色") | |
| blAppend = SetMenu(hwnd, hMenu) | |
| Call ShowWindow(hwnd, SW_SHOW) | |
| Call UpdateWindow(hwnd) | |
| Do While (GetMessage(message, 0, 0, 0)) | |
| Call TranslateMessage(message) | |
| Call DispatchMessage(message) | |
| Loop | |
| Application.Visible = True | |
| UnregisterClass wc.lpszClassName, wc.hInstance | |
| CreateGraph = hwnd | |
| End Function | |
| ' ///////////////////////////////////////////////////////////////////////////////////// | |
| ' //#名称 WindowProc | |
| ' // | |
| ' //#概要 GraphウィンドウのWindowプロシージャ。 | |
| ' // | |
| ' //#引数 | |
| ' // | |
| ' //#戻値 | |
| ' // | |
| ' //#解説 | |
| ' // | |
| ' //#履歴 2011/04/12 | |
| ' // Coded by YASUTADA OOBA | |
| ' // | |
| ' ///////////////////////////////////////////////////////////////////////////////////// | |
| Private Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long | |
| Dim hDC As Long | |
| Dim lpPaint As PAINTSTRUCT | |
| Dim strctRECT As RECT | |
| Dim lngRet As Long | |
| Dim tmpRECT As RECT | |
| Dim strBuff As String | |
| Dim lngLen As Long | |
| Dim Ret As Long | |
| Dim mWS As Long | |
| Dim lngSt As Long | |
| Dim lngEd As Long | |
| Dim FName As String | |
| Dim strFilter As String | |
| Dim strRep As String | |
| Select Case uMsg | |
| Case WM_CREATE | |
| Call InitCommonControls | |
| ' 'InsertButton | |
| ' mWS = WS_CHILD Or WS_VISIBLE Or BS_PUSHBUTTON | |
| ' hPracBtn = CreateWindowEx(0, "Button", "Btn1", mWS, 20, 750, 100, 40, hWnd, 0, 0, 0) | |
| ' | |
| ' 'TestButton | |
| ' mWS = WS_CHILD Or WS_VISIBLE Or BS_PUSHBUTTON | |
| ' hPracBtn2 = CreateWindowEx(0, "Button", "Btn1", mWS, 140, 750, 100, 40, hWnd, 0, 0, 0) | |
| 'Edit | |
| mWS = WS_CHILD Or WS_VISIBLE Or ES_LEFT Or ES_AUTOHSCROLL Or ES_AUTOVSCROLL Or ES_MULTILINE Or WS_HSCROLL Or WS_VSCROLL | |
| hPracTxt = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "Text1", mWS, 0, 0, 713, 730, hwnd, 0, 0, 0) | |
| 'StatusBar | |
| mWS = WS_CHILD Or WS_VISIBLE Or CCS_BOTTOM Or SBARS_SIZEGRIP | |
| hPracStatus = CreateWindowEx(0, "msctls_statusbar32", "hoge", mWS, 0, 0, 0, 0, hwnd, 0, 0, 0) | |
| 'DateTime | |
| mWS = WS_CHILD Or WS_VISIBLE | |
| hPracDate = CreateWindowEx(0, "SysDateTimePick32", "Date1", mWS, 20, 730, 100, 30, hwnd, 0, 0, 0) | |
| mWS = WS_CHILD Or WS_VISIBLE Or TBS_AUTOTICK | |
| hPracTrack = CreateWindowEx(0, "msctls_trackbar32", "TrackBar", mWS, 200, 730, 100, 30, hwnd, 0, 0, 0) | |
| Dim strStatus As String | |
| Dim aryP(2) As Long | |
| aryP(0) = 100 | |
| aryP(1) = 150 | |
| aryP(2) = 200 | |
| strStatus = StrConv("hoge", vbFromUnicode) | |
| Debug.Print "Status" & hPracStatus | |
| lngRet = SendMessage(hPracStatus, SB_SETPARTS, 3, aryP(0)) | |
| lngRet = SendMessage(hPracStatus, SB_SETTEXT, 0, ByVal StrPtr(strStatus)) | |
| lngRet = SendMessage(hPracTrack, TBM_SETRANGEMIN, 1, ByVal 0) | |
| lngRet = SendMessage(hPracTrack, TBM_SETRANGEMAX, 1, ByVal 5) | |
| ' lngRet = SendMessage(hPracTrack, TBM_SETSELSTART, 1, ByVal 0) | |
| ' lngRet = SendMessage(hPracTrack, TBM_SETSELEND, 1, ByVal 100) | |
| lngRet = SendMessage(hPracTrack, TBM_SETTICFREQ, 5, 0) | |
| lngRet = SendMessage(hPracTrack, TBM_SETPOS, False, 50) | |
| lngRet = SendMessage(hPracTrack, TBM_GETRANGEMIN, 0, 0) | |
| Debug.Print "MIN" & lngRet | |
| lngRet = SendMessage(hPracTrack, TBM_GETRANGEMAX, 0, 0) | |
| Debug.Print "MAX" & lngRet | |
| Case WM_SIZE | |
| lngRet = MoveWindow(hPracTxt, 0, 0, LoWord(lParam), HiWord(lParam) - 94, 0) | |
| lngRet = SendMessage(hPracStatus, WM_SIZE, wParam, lParam) | |
| WindowProc = 0 | |
| Case WM_DESTROY | |
| Call PostQuitMessage(0) | |
| WindowProc = 0 | |
| Case WM_COMMAND | |
| Debug.Print "lParam" & lParam | |
| Debug.Print "HiWord(wParam)" & HiWord(wParam) | |
| Debug.Print "LoWord(wParam)" & LoWord(wParam) | |
| ' If lParam = hPracBtn Then | |
| ' strBuff = String(255, vbNullChar) | |
| ' lngRet = SendMessageB(hPracTxt, WM_GETTEXT, Len(strBuff), StrPtr(strBuff)) | |
| ' strBuff = StrConv(strBuff, vbUnicode) | |
| ' lngRet = SendMessage(hPracTxt, EM_GETSEL, VarPtr(lngSt), lngEd) | |
| ' If lngEd > lngSt And strBuff <> "" Then | |
| ' InsertComment Mid(strBuff, lngSt + 1, lngEd - lngSt) | |
| ' lngRet = SendMessage(hPracTxt, EM_REPLACESEL, 0, StrPtr(strRep)) | |
| ' End If | |
| ' | |
| ' ElseIf lParam = hPracBtn2 Then | |
| '' strFilter = "すべてのファイル(*.*)" & Chr(0) & "*.*" & Chr(0) | |
| '' FName = apiGetOpenFileName(hwnd, strFilter, "C:\Users\" & Environ("USERNAME") & "\Desktop") | |
| '' If FName <> "" Then | |
| '' OpenText hPracTxt, FName | |
| '' End If | |
| ' Dim lfont As LOGFONT | |
| ' Dim hFont As Long | |
| ' lfont = OpenChooseFont(hPracTxt) | |
| ' hFont = CreateFontIndirect(ByVal VarPtr(lfont)) | |
| ' lngRet = SendMessage(hPracTxt, WM_SETFONT, hFont, 1) | |
| ' | |
| ' ElseIf lParam = 0 And HiWord(wParam) = 0 And LoWord(wParam) <> 0 Then | |
| If lParam = 0 And HiWord(wParam) = 0 And LoWord(wParam) <> 0 Then | |
| Select Case LoWord(wParam) | |
| Case 1 | |
| strFilter = "すべてのファイル(*.*)" & Chr(0) & "*.*" & Chr(0) | |
| FName = apiGetOpenFileName(hwnd, strFilter, "C:\Users\" & Environ("USERNAME") & "\Desktop") | |
| If FName <> "" Then | |
| OpenText hPracTxt, FName | |
| End If | |
| Case 2 | |
| DestroyWindow (hwnd) | |
| Case 10 | |
| 'OpenChooseFontがLOGFONTを返す場合 | |
| Dim lfont As LOGFONT | |
| Dim hFont As Long | |
| lfont = OpenChooseFont(hPracTxt) | |
| hFont = CreateFontIndirect(ByVal VarPtr(lfont)) | |
| lngRet = SendMessage(hPracTxt, WM_SETFONT, hFont, 1) | |
| 'OpenChooseFontがCHOOSEFONT構造体を返す場合 | |
| ' Dim cf As CHOOSEFONT | |
| ' Dim hFont As Long | |
| ' cf = OpenChooseFont(hPracTxt) | |
| ' Debug.Print "FONT ADDRESS" & cf.lpLogFont | |
| ' | |
| ' hFont = CreateFontIndirect(ByVal cf.lpLogFont) | |
| ' lngRet = SendMessage(hPracTxt, WM_SETFONT, hFont, 1) | |
| Case 11 | |
| Debug.Print "11" | |
| Dim cColor As CHOOSECOLOR | |
| Dim CustomColors() As Byte | |
| Dim hDCPrac As Long | |
| Dim strTxt As String | |
| ' cColor.lStructSize = Len(cColor) | |
| ' cColor.flags = 0 | |
| ' cColor.hInstance = 0 | |
| ' cColor.hwndOwner = hPracTxt | |
| ' cColor.lpCustColors = StrConv(CustomColors, vbUnicode) | |
| ' lngRet = CHOOSECOLOR(cColor) | |
| ' Debug.Print "Color:" & str$(cColor.rgbResult) | |
| ' 'CustomColors = StrConv(cColor.lpCustColors, vbFromUnicode) | |
| Debug.Print "hPracTxt:" & hPracTxt | |
| hDCPrac = GetDC(hPracTxt) | |
| Debug.Print "hDCPrac:" & hDCPrac | |
| lngRet = SetTextColor(hDCPrac, RGB(255, 0, 0)) | |
| strTxt = "あいうえお" | |
| lngRet = TextOut(hDCPrac, 0, 0, strTxt, LenB(StrConv(strTxt, vbFromUnicode))) | |
| ' | |
| ' 'lngRet = ReleaseDC(hPracTxt, hDCPrac) | |
| Case Else | |
| OpenText hPracTxt, ThisWorkbook.Path & "\Tmp\" & strTmp(LoWord(wParam) - 3) | |
| End Select | |
| End If | |
| ' If lParam = hPracTxt Then | |
| ' If wParam Mod EN_UPDATE = 0 Then | |
| ' strLen = 256 | |
| ' Ret = GetWindowText(lParam, strBuff, strLen) | |
| ' MsgBox strBuff | |
| ' Else | |
| ' Debug.Print "NoEN_UPDATE" & CStr(wParam) | |
| ' End If | |
| ' End If | |
| UpdateWindow hPracTxt | |
| WindowProc = 0 | |
| Case WM_MENUSELECT | |
| Debug.Print "MenuID:" & LoWord(wParam) | |
| Debug.Print "hMenu:" & lParam | |
| Case WM_NOTIFY | |
| ' Debug.Print "wParam" & wParam | |
| ' Debug.Print "lParam" & lParam | |
| Dim tagNMHDR As NMHDR | |
| Dim st As SYSTEMTIME | |
| Dim strTime As String | |
| strTime = String(255, vbNullChar) | |
| CopyMemory tagNMHDR, ByVal lParam, Len(tagNMHDR) | |
| Select Case tagNMHDR.hwndFrom | |
| Case hPracDate | |
| Select Case tagNMHDR.code | |
| Case DTN_DATETIMECHANGE | |
| Dim tagNMDATETIMECHANGE As NMDATETIMECHANGE | |
| Dim tagSYSTEMTIME As SYSTEMTIME | |
| CopyMemory tagNMDATETIMECHANGE, ByVal lParam, Len(tagNMDATETIMECHANGE) | |
| ' CopyMemory tagSYSTEMTIME, ByVal tagNMDATETIMECHANGE.tSYSTEMTIME, Len(tagSYSTEMTIME) | |
| Debug.Print tagNMDATETIMECHANGE.tSYSTEMTIME.wDay | |
| ' CopyMemory tagSYSTEMTIME, ByVal lParam + Len(tagNMHDR) + 4, Len(tagSYSTEMTIME) | |
| ' Debug.Print tagSYSTEMTIME.wYear | |
| End Select | |
| End Select | |
| WindowProc = 0 | |
| Case WM_HSCROLL | |
| If lParam = hPracTrack Then | |
| Debug.Print "H" & HiWord(wParam) | |
| Debug.Print "L" & LoWord(wParam) | |
| lngRet = SendMessage(hPracTrack, TBM_GETPOS, 0, 0) | |
| Debug.Print lngRet | |
| End If | |
| Case WM_VSCROLL | |
| If lParam = hPracTrack Then | |
| Debug.Print "H" & HiWord(wParam) | |
| Debug.Print "L" & LoWord(wParam) | |
| End If | |
| Case Else | |
| WindowProc = DefWindowProc(hwnd, uMsg, wParam, lParam) | |
| End Select | |
| End Function | |
| Private Function FPtr(ByVal p As Long) As Long | |
| FPtr = p | |
| End Function | |
| Private Sub InsertComment(str As String) | |
| Dim lngRow_St As Long | |
| Dim lngCol_St As Long | |
| Dim lngRow_Ed As Long | |
| Dim lngCol_Ed As Long | |
| Dim arryStr() As String | |
| Dim strTmp As String | |
| Dim i As Long | |
| arryStr = Split(str, vbCrLf) | |
| For i = 0 To UBound(arryStr) | |
| If i = 0 Then | |
| strTmp = "'" & arryStr(i) | |
| Else | |
| strTmp = strTmp & vbCrLf & "'" & arryStr(i) | |
| End If | |
| Next i | |
| Application.VBE.ActiveCodePane.GetSelection lngRow_St, lngCol_St, lngRow_Ed, lngCol_Ed | |
| Debug.Print lngRow_St | |
| Application.VBE.ActiveCodePane.CodeModule.InsertLines lngRow_St, strTmp | |
| End Sub | |
| Private Function apiGetOpenFileName(nHandle As Long, nFilter As String, nDir As String) As String | |
| Dim OFN As OPENFILENAME 'OPENFILENAME構造体 | |
| Dim Ret As Long '戻り値 | |
| With OFN '構造体の設定 | |
| .flags = OFN_PATHMUSTEXIST Or _ | |
| OFN_FILEMUSTEXIST Or _ | |
| OFN_HIDEREADONLY | |
| '.hInstance = App.hInstance 'インスタンスハンドルを設定 | |
| .hwndOwner = nHandle 'ウインドウハンドルを設定 | |
| .lpstrTitle = "ファイルを開く" 'コモンダイアログのタイトルを設定 | |
| .lpstrFilter = nFilter 'フィルタを設定 | |
| .lStructSize = Len(OFN) '構造体のサイズを設定 | |
| .nMaxFile = 257 'ファイル名のバッファのサイズを設定 | |
| .lpstrFileTitle = String(257, Chr(0)) 'フルパス用のバッファを確保 | |
| .nMaxFileTitle = 257 'フルパス用のバッファのサイズを設定 | |
| .lpstrFile = String(257, Chr(0)) 'ファイル名のバッファを確保 | |
| .lpstrInitialDir = nDir 'デフォルトのディレクトリを指定 | |
| End With | |
| Ret = GetOpenFileName(OFN) '「ファイルを開く」ダイアログボックスを表示する | |
| If Ret = 0 Then '[キャンセル]を押した時、 | |
| apiGetOpenFileName = vbNullString ' ""を返す | |
| Else '[OK]を押した時、 | |
| apiGetOpenFileName = Left(OFN.lpstrFile, InStr(OFN.lpstrFile, Chr(0)) - 1) ' ファイル名(フルパス)を返す | |
| End If | |
| End Function | |
| Private Sub OpenText(hwnd As Long, str As String) | |
| Dim lngFN As Long | |
| Dim strLine As String | |
| Dim strTmp As String | |
| Dim lngRet As Long | |
| lngFN = FreeFile | |
| Open str For Input As #lngFN | |
| Do Until EOF(lngFN) | |
| Line Input #lngFN, strLine | |
| If strTmp = "" Then | |
| strTmp = strLine | |
| Else | |
| strTmp = strTmp & vbCrLf & strLine | |
| End If | |
| Loop | |
| Close lngFN | |
| lngRet = SendMessage(hwnd, WM_SETTEXT, 0, ByVal strTmp) | |
| End Sub | |
| ' Win32のHIWORDマクロのVB版 | |
| ' MSDNの 「HOWTO: Package HiWord/LoWord Values Into a Long Parameter ID: Q189170」 | |
| Private Function HiWord(DWord As Long) As Integer | |
| HiWord = (DWord And &HFFFF0000) \ &H10000 | |
| End Function | |
| ' Win32のLOWORDマクロのVB版 | |
| ' MSDNの 「HOWTO: Package HiWord/LoWord Values Into a Long Parameter ID: Q189170」 | |
| Private Function LoWord(DWord As Long) As Integer | |
| If DWord And &H8000& Then ' &H8000& = &H00008000 | |
| LoWord = DWord Or &HFFFF0000 | |
| Else | |
| LoWord = DWord And &HFFFF& | |
| End If | |
| End Function | |
| Private Function GetFontHandle(strFontName As String) | |
| Dim i As Long | |
| Dim lngRet As Long | |
| Dim FName() As Byte | |
| Dim fnt As LOGFONT | |
| With fnt | |
| .lfHeight = 20 | |
| .lfWidth = 10 | |
| .lfEscapement = 0 | |
| .lfOrientation = 0 | |
| .lfWeight = FW_NORMAL | |
| FName() = StrConv(strFontName, vbFromUnicode) | |
| For i = 0 To UBound(FName) | |
| .lfFaceName(i) = FName(i) | |
| Next | |
| End With | |
| lngRet = CreateFontIndirect(ByVal VarPtr(fnt)) | |
| GetFontHandle = lngRet | |
| End Function | |
| Private Sub SetM() | |
| Dim hFont As Long | |
| Dim lngRet As Long | |
| hFont = GetFontHandle("メイリオ") | |
| lngRet = SendMessage(hPracTxt, WM_SETFONT, hFont, 1) | |
| End Sub | |
| Private Function OpenChooseFont(hwnd As Long) As LOGFONT | |
| Dim cf As CHOOSEFONT | |
| Dim lfont As LOGFONT | |
| Dim fontname As String | |
| Dim lngRet As Long | |
| Dim hMem As Long | |
| Dim pMem As Long | |
| hFont = SendMessage(hwnd, WM_GETFONT, 0, 0&) | |
| lngRet = GetObject(hFont, Len(lfont), ByVal VarPtr(lfont)) | |
| Debug.Print lfont.lfFaceName | |
| ' lfont.lfFaceName = StrConv("MS Pゴシック", vbFromUnicode) & vbNullChar | |
| ' lfont.lfHeight = 10 / 0.75 | |
| ' lfont.lfItalic = False | |
| ' lfont.lfUnderline = False | |
| ' lfont.lfStrikeOut = False | |
| ' lfont.lfWeight = False | |
| ' lfont.lfCharSet = 128 | |
| cf.lStructSize = Len(cf) | |
| cf.hwndOwner = hwnd | |
| cf.lpLogFont = VarPtr(lfont) | |
| cf.flags = CF_INITTOLOGFONTSTRUCT Or _ | |
| CF_SCREENFONTS Or _ | |
| CF_LIMITSIZE Or _ | |
| CF_EFFECTS | |
| cf.rgbColor = RGB(0, 0, 0) | |
| cf.nSizeMin = 8 | |
| cf.nSizeMax = 72 | |
| lngRet = CHOOSEFONT(cf) | |
| lfont.lfFaceName = StrConv(lfont.lfFaceName, vbUnicode) + vbNullChar | |
| ' If lngRet <> 0 Then | |
| ' CopyMemory lfont, ByVal pMem, Len(lfont) | |
| ' OpenChooseFont = Left(lfont.lfFaceName, InStr(lfont.lfFaceName, vbNullChar) - 1) | |
| ' End If | |
| Debug.Print Left(StrConv(lfont.lfFaceName, vbUnicode), InStr(StrConv(lfont.lfFaceName, vbUnicode), vbNullChar) - 1) | |
| OpenChooseFont = lfont 'Left(StrConv(lfont.lfFaceName, vbUnicode), InStr(StrConv(lfont.lfFaceName, vbUnicode), vbNullChar) - 1) | |
| 'lngRet = GlobalUnlock(hMem) | |
| 'lngRet = GlobalFree(hMem) | |
| End Function | |
| 'Private Function OpenChooseFont(hWnd As Long) As CHOOSEFONT | |
| ' | |
| ' Dim cf As CHOOSEFONT | |
| ' Dim lfont As LOGFONT | |
| ' Dim fontname As String | |
| ' Dim lngRet As Long | |
| ' Dim hMem As Long | |
| ' Dim pMem As Long | |
| ' | |
| ' hFont = SendMessage(hWnd, WM_GETFONT, 0, 0&) | |
| ' lngRet = GetObject(hFont, Len(lfont), ByVal VarPtr(lfont)) | |
| ' Debug.Print StrConv(lfont.lfFaceName, vbUnicode) + vbNullChar | |
| ' lfont.lfFaceName = StrConv(lfont.lfFaceName, vbFromUnicode) + vbNullChar | |
| ' | |
| ' Debug.Print "FONT ADD OPC" & VarPtr(lfont) | |
| ' | |
| '' lfont.lfFaceName = StrConv("MS Pゴシック", vbFromUnicode) & vbNullChar | |
| '' lfont.lfHeight = 10 / 0.75 | |
| '' lfont.lfItalic = False | |
| '' lfont.lfUnderline = False | |
| '' lfont.lfStrikeOut = False | |
| '' lfont.lfWeight = False | |
| '' lfont.lfCharSet = 128 | |
| ' | |
| ' cf.lStructSize = Len(cf) | |
| ' cf.hwndOwner = hWnd | |
| ' cf.lpLogFont = VarPtr(lfont) | |
| ' cf.Flags = CF_INITTOLOGFONTSTRUCT Or _ | |
| ' CF_SCREENFONTS Or _ | |
| ' CF_LIMITSIZE Or _ | |
| ' CF_EFFECTS | |
| ' cf.rgbColor = RGB(0, 0, 0) | |
| ' cf.nSizeMin = 8 | |
| ' cf.nSizeMax = 72 | |
| ' | |
| ' lngRet = CHOOSEFONT(cf) | |
| ' | |
| '' If lngRet <> 0 Then | |
| '' CopyMemory lfont, ByVal pMem, Len(lfont) | |
| '' OpenChooseFont = Left(lfont.lfFaceName, InStr(lfont.lfFaceName, vbNullChar) - 1) | |
| '' End If | |
| ' Debug.Print Left(StrConv(lfont.lfFaceName, vbUnicode), InStr(StrConv(lfont.lfFaceName, vbUnicode), vbNullChar) - 1) | |
| ' OpenChooseFont = cf | |
| ' 'Left(StrConv(lfont.lfFaceName, vbUnicode), InStr(StrConv(lfont.lfFaceName, vbUnicode), vbNullChar) - 1) | |
| ' 'lngRet = GlobalUnlock(hMem) | |
| ' 'lngRet = GlobalFree(hMem) | |
| 'End Function | |
| Private Function GetTmpTxt() As String() | |
| Dim strTmp() As String | |
| Dim strFile As String | |
| strFile = Dir(ThisWorkbook.Path & "\Tmp\") | |
| Do Until strFile = "" | |
| If Sgn(strTmp) = 0 Then | |
| ReDim strTmp(0) As String | |
| Else | |
| ReDim Preserve strTmp(UBound(strTmp) + 1) As String | |
| End If | |
| strTmp(UBound(strTmp)) = strFile | |
| strFile = Dir | |
| Loop | |
| GetTmpTxt = strTmp | |
| End Function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment