zoukankan      html  css  js  c++  java
  • 一个简单的记事本

      1 #include <Windows.h>
      2 #include "resource.h"
      3 #include <stdio.h>
      4 
      5 void echo(char *str)
      6 {
      7 MessageBox(NULL, str, TEXT("提示"), MB_OK);
      8 }
      9 
     10 int CALLBACK DialogProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
     11 {
     12 OPENFILENAME ofn;       // OpenFileName 的结构体
     13 char szFile[260];       // 保存文件名称的缓冲字符串
     14 HANDLE hf;              // 文件句柄
     15 DWORD fileSize, readSize;
     16 char *buffer;
     17 
     18 switch(Message)
     19 {
     20 case WM_INITDIALOG:
     21 break;
     22 case WM_COMMAND:
     23 {       
     24 switch(wParam)
     25 {
     26 case ID_NEW_FILE:
     27 SetDlgItemText(hwnd, IDC_TEXT, "");
     28 break;
     29 case ID_OPEN_FILE:
     30 // 初始化 OPENFILENAME 结构体
     31 ZeroMemory(&ofn, sizeof(ofn));
     32 ofn.lStructSize = sizeof(ofn);
     33 ofn.hwndOwner = hwnd;
     34 ofn.lpstrFile = szFile;
     35 // Set lpstrFile[0] to '' so that GetOpenFileName does not 
     36 // use the contents of szFile to initialize itself.
     37 ofn.lpstrFile[0] = '';
     38 ofn.nMaxFile = sizeof(szFile);
     39 ofn.lpstrFilter = "All*.*Text*.TXT";
     40 ofn.nFilterIndex = 1;
     41 ofn.lpstrFileTitle = NULL;
     42 ofn.nMaxFileTitle = 0;
     43 ofn.lpstrInitialDir = NULL;
     44 ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
     45 
     46 // 若成功获取到文件名
     47 if (GetOpenFileName(&ofn)==TRUE)
     48 {
     49 // 输出文件名
     50 //echo(szFile);
     51 hf = CreateFile(szFile, 
     52 GENERIC_READ, // 只读方式打开
     53 0,
     54 (LPSECURITY_ATTRIBUTES) NULL,
     55 OPEN_EXISTING,// 只当文件存在时打开
     56 FILE_ATTRIBUTE_NORMAL,
     57 (HANDLE) NULL
     58 );
     59 }
     60 
     61 if (hf == INVALID_HANDLE_VALUE) // 如果打开失败
     62 { 
     63 echo("无法打开文件
    ");
     64 } else 
     65 {
     66 fileSize = GetFileSize(hf,NULL); // 获取文件大小
     67 buffer = (char *)malloc(fileSize + 1); // 获取一块内存
     68 buffer[fileSize] = ''; // 设置结尾
     69 
     70 ReadFile(
     71 hf,// 文件句柄
     72 buffer,     // 读取到的文件所存放的缓冲区
     73 fileSize,   // 要读取的字节数
     74 &readSize,  // 实际读取的字节数
     75 NULL        // 用 FILE_FLAG_OVERLAPPED 打开时所需的
     76 );
     77 
     78 SetDlgItemText(hwnd, IDC_TEXT, buffer);
     79 
     80 CloseHandle(hf); // 关闭文件句柄
     81 free(buffer);// 释放内存
     82 }
     83 
     84 break;
     85 case ID_EXIT:
     86 EndDialog(hwnd, 0);
     87 break;  
     88 }
     89 }
     90 break;
     91 case WM_CLOSE:              
     92 DestroyWindow(hwnd);
     93 break;
     94 }
     95 return 0;
     96 }
     97 
     98 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
     99 {
    100 // 加载 Rich Edit 控件的 DLL 动态链接库
    101 LoadLibrary("RICHED20.DLL");
    102 DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DialogProc);
    103 }
  • 相关阅读:
    Mysql String Functions
    Array JSON
    $(document).ready vs $(window).load vs window.onload
    jquery,返回到顶部按钮
    html5 教程网站
    js,replace() 和 正则表达式(regular expression)
    设置 textarea 默认滑动到底部
    工作常用英语单词整理2
    工作常用英语单词整理1
    javascript,jquery代码规范
  • 原文地址:https://www.cnblogs.com/veis/p/6938820.html
Copyright © 2011-2022 走看看