一个简单的记事本

#include <Windows.h>

#include "resource.h"

#include <stdio.h>

void echo(char *str)

{

MessageBox(NULL, str, TEXT("提示"), MB_OK);

}

int CALLBACK DialogProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)

{

OPENFILENAME ofn;       // OpenFileName 的结构体

char szFile[260];       // 保存文件名称的缓冲字符串

HANDLE hf;              // 文件句柄

DWORD fileSize, readSize;

char *buffer;

switch(Message)

{

case WM_INITDIALOG:

break;

case WM_COMMAND:

{

switch(wParam)

{

case ID_NEW_FILE:

SetDlgItemText(hwnd, IDC_TEXT, "");

break;

case ID_OPEN_FILE:

// 初始化 OPENFILENAME 结构体

ZeroMemory(&ofn, sizeof(ofn));

ofn.lStructSize = sizeof(ofn);

ofn.hwndOwner = hwnd;

ofn.lpstrFile = szFile;

// Set lpstrFile[0] to ‘\0‘ so that GetOpenFileName does not

// use the contents of szFile to initialize itself.

ofn.lpstrFile[0] = ‘\0‘;

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";

ofn.nFilterIndex = 1;

ofn.lpstrFileTitle = NULL;

ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = NULL;

ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

// 若成功获取到文件名

if (GetOpenFileName(&ofn)==TRUE)

{

// 输出文件名

//echo(szFile);

hf = CreateFile(szFile,

GENERIC_READ, // 只读方式打开

0,

(LPSECURITY_ATTRIBUTES) NULL,

OPEN_EXISTING, // 只当文件存在时打开

FILE_ATTRIBUTE_NORMAL,

(HANDLE) NULL

);

}

if (hf == INVALID_HANDLE_VALUE) // 如果打开失败

{

echo("无法打开文件\n");

} else

{

fileSize = GetFileSize(hf,NULL); // 获取文件大小

buffer = (char *)malloc(fileSize + 1); // 获取一块内存

buffer[fileSize] = ‘\0‘; // 设置结尾

ReadFile(

hf, // 文件句柄

buffer,     // 读取到的文件所存放的缓冲区

fileSize,   // 要读取的字节数

&readSize,  // 实际读取的字节数

NULL        // 用 FILE_FLAG_OVERLAPPED 打开时所需的

);

SetDlgItemText(hwnd, IDC_TEXT, buffer);

CloseHandle(hf); // 关闭文件句柄

free(buffer); // 释放内存

}

break;

case ID_EXIT:

EndDialog(hwnd, 0);

break;

}

}

break;

case WM_CLOSE:

DestroyWindow(hwnd);

break;

}

return 0;

}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )

{

// 加载 Rich Edit 控件的 DLL 动态链接库

LoadLibrary("RICHED20.DLL");

DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DialogProc);

}

时间: 2024-08-08 07:16:49

一个简单的记事本的相关文章

一个简单的记事本编辑框的实现以及搜集的一些窗口风格的预定义

这是一个简单的记事本的窗口过程 1 WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 2 3 LOCAL winRect:RECT 4 LOCAL editWidth:DWORD 5 LOCAL editHeight:DWORD 6 7 .IF uMsg==WM_DESTROY 8 invoke PostQuitMessage,NULL 9 .ELSEIF uMsg==WM_CREATE 10 ;创建一个编辑框 11

用ios做的一个简单的记事本

#import "ViewController.h" @interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *标题;  //用的是一个text按键 @property (weak, nonatomic) IBOutlet UITextView *文本;  //用的是一个text view按键 @end @implementation ViewController- (IBAction)创

创建并运行一个简单的Java程序

通常开发一个java应用程序可分为三个步骤: 1.创建一个带有文件扩展名 *.java 的源文件 1).使用编辑器(如记事本,小编使用的是notepad++),输入以下6行文本: 1 //一个简单的application例子:打印一行文本 2 class Hello { 3 public static void main (String args[]){ 4 System.out.println("Hello Java,This is my first Java Application!&quo

Java中使用AWT编写自己的第四个图形界面--简单的记事本

弄了个简单的记事本,能进行简单的打开文件,编辑文件,保存文件,但是怎么都无法解决中文乱码问题,求大家指教…… . package com.xywei.awt; import java.awt.FileDialog;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.TextArea;import java.awt.event.Acti

一个简单的HTML病毒分析

一直就想写这篇东西了,只是上班时说要上班,不写,回家后又忙着玩游戏,丢一边去了.现在只好不务正业的开写了,希望头儿不会知道我的blog.哈哈 在很久之前就对HTML的病毒很感兴趣了,很好奇怎么能远程向本地不经过允许就能下载可执行文件的,只是一直没机会搞得到ASP的原码,所以不才敢断章取义的去作什么分析.最近一次听一朋友说他看一个网页时病毒防火墙提示有病毒,叫我小心(先感谢一下他先),我闪了一下念头,就打开FlashGet把那个病毒首页下了下来. 稍微看了一下发现在首页代码的下面几行里有一个隐含的

一步一步教你使用CGI实现一个简单的后门

程序实例1:使用CGI实现文件定向操作 #include <stdio.h> #include <stdlib.h> #include <string.h> void main() { //设置HTML语言 printf("Content-type:text/html\n\n"); //文件定向操作 char* str = "ipconfig > 1.txt"; system(str); } 将上面的代码编译成的exe文件拷

java创建一个简单的小框架frame

import java.awt.*; import javax.swing.*; public class SimpleFrameTest { public static void main(String[] args) { EventQueue.invokeLater(new Runnable(){ // 开一个线程 public void run() { SimpleFrame frame = new SimpleFrame(); frame.setTitle("记事本"); //

Jenkins搭建一个简单的构建项目

0.准备 需要先安装好Jenkins,见文章链接 在浏览器输入localhost:8080/jenkins,打开Jenkins控制台 注意,第一次进入需要输入初始管理密码,保存在一个initAdminPassword文件中,Jenkins会提示该文件路径在何处 由于权限问题,需要在文件管理器中一层一层的点击找到文件 用记事本打开该文件即可,复制密码到框中即可进入安装界面. 这里选择左边的Install suggested plugins安装建议的控件 配置好后就会出现这样界面. 1.新建任务 点

Delphi练习之简单实现记事本功能

主要是使用Delphi创建一个窗口程序,实现的功能就是记事本最基本的打开和保存功能,其实是很简单就能实现的,因为原理很简单,前提是控件的属性方法要知道是哪一个,但是RAD官方帮助文档做的实在是太烂,粗略不说有的甚至都直接不写,所以中间遇到了很多问题,在此总结一下. 实现的过程就分为两部分:界面布局和Unit内编码. 界面布局,我们先按需求设计出合适的界面,下图是我设计的界面(其实就是仿记事本),具体步骤下面讲: 如图所示,我向默认生成的 Form1窗体 中拖入了五个组件: 1)Standard中