导航:首页 > 版本升级 > openfilename头文件

openfilename头文件

发布时间:2023-05-13 05:18:53

Ⅰ QT :QString 的getOpenFileName 方法打开文件时路径时 汉字部分显示乱码

fileName=fileDialog->selectedFiles()[0];
code = QTextCodec:: codecForName("gb18030");
std::string strbuffer;
strbuffer = code->fromUnicode(fileName).data();
同时要加上头文件#include <QTextCodec>。
qt中有自带的中文字符编码方式。

Ⅱ c++出学者的提问

程序解析:

1、windows.h是每一个Windows程序都需要的头文件。

2、WinMain函数是所有Windows C程序的入口,类似于DOS C中的main函数。

3、MessageBox是一个Win32 API函数(API,Application Programming Interface 应用程序接口),其作用是弹出一个对话框,显示消息的内容。该函数的第一个参数是用来指定父窗口句柄,即对话框所在的窗口句柄。第二个参数是用来显示消息的内容(你可以修改成你想显示的内歼樱容)。第三个参数是 对话框标的标题,如本例的“我的第一个Windows程序”,第四个参数是指定对话框中显示的按钮,试一试,将MB_OK修改成MB_OKCANCEL,运行一下程序会出现什么结果,再试一试修改成MB_RETRYCANCEL

二、Windows 程序简介

(1)Windows C程序的组成:

1.C程序源文件,扩展名为.c或.cpp

2.头文件,扩展名为.h

3.资源文件,扩展名为.rc

(2)源程序的组成结构

Windows C程序有相对固定的基本结构,一般有入口函数WinMain和窗口函数。

1、WinMain函数

是所有Windows C程序的入口,类似于DOS C的main函数,其功能是完成一系列的定义和初始化工作,并产生消息循环。消息循环是整个程序运行的核心。

WinMain函数有三个基本的组成部分:函数说明、初始化和消息循环

a、WinMain函数的说明:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)

参数说明:

hInstance 应用程序当前实例句柄

hPrevInstance 前一个实例句柄,在32位系统中该参数永远是NULL

szCmdLine 程序运行时的命令行参数

iCmdShow 程序运行时的显示方式,如最大化、最小化、隐藏显示等。

b、初始化

初始化包括窗口类的定义、念友注册、创建窗口实例和显示窗口四部分。

这是固定格式,所有的Windows程序基本一样,记住即可,具体参见下面的程序实例的注释。

2、窗口函数

窗口函数定义了Windows C程序对接受到的不同消息的响应,其中包含了应用程序对各种可能接收到的消息的处理过程,是消息处理分支控制语句的集合。通常窗口函数是有一个或多个switch语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,就会执行相应case 语句下的程序模块来完成相应的功能。

窗口函数说明:

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

参数仔改槐说明:

hwnd 窗口句柄

message 代表所处理消息的消息值

wParam 消息的附加参数,是message的进一步信息

lParam 消息的附加参数,是message的进一步信息

一般用法:

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{
...
switch (message)
{
case 常数1:
...

case 常数2:

...

...

case WM_DESTROY:
PostQuitMessage (0) ; //在消息队列中插入一条“退出”消息
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);//执行默认的消息处理
}

窗口函数的主体是消息处理语句,该语句是有一系列case语句组成。我们学习者自需要根据窗口可能收到的消息在case语句中编写相应的处理程序即可。
1.记事本主程序

#include <windows.h>

#include "sample.h"

static char g_szClassName[] = "MyWindowClass";
static HINSTANCE g_hInst = NULL;

#define IDC_MAIN_TEXT 1001

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

hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, 0);
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;
if(SetWindowText(hEdit, pszFileText))
bSuccess = TRUE;
}
GlobalFree(pszFileText);
}
}
CloseHandle(hFile);
}
return bSuccess;
}

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

hFile = CreateFile(pszFileName, GENERIC_WRITE, 0, 0,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwTextLength;
dwTextLength = GetWindowTextLength(hEdit);
if(dwTextLength > 0)
{
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 DoFileOpenSave(HWND hwnd, BOOL bSave)
{
OPENFILENAME ofn;
char szFileName[MAX_PATH];

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

ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "文本文件 (*.txt)\0*.txt\0所有文件 (*.*)\0*.*\0\0";
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = "txt";

if(bSave)
{
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT;

if(GetSaveFileName(&ofn))
{
if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
{
MessageBox(hwnd, "保存文件失败.", "错误信息",
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
}
}
else
{
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if(GetOpenFileName(&ofn))
{
if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
{
MessageBox(hwnd, "打开文件失败.", "错误信息",
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
}
}
return TRUE;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_CREATE:
CreateWindow("EDIT", "",
WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE |
ES_WANTRETURN,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL);

SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,
(WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));
break;
case WM_SIZE:
if(wParam != SIZE_MINIMIZED)
MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),
HIWORD(lParam), TRUE);
break;
case WM_SETFOCUS:
SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT));
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case CM_FILE_OPEN:
DoFileOpenSave(hwnd, FALSE);
break;
case CM_FILE_SAVEAS:
DoFileOpenSave(hwnd, TRUE);
break;
case CM_FILE_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
break;
case CM_ABOUT:
MessageBox (NULL, "一个Windows C 记事本程序" , "关于...", 0);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX WndClass;
HWND hwnd;
MSG Msg;

g_hInst = hInstance;

WndClass.cbSize = sizeof(WNDCLASSEX);
WndClass.style = 0;
WndClass.lpfnWndProc = WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = g_hInst;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
WndClass.lpszMenuName = "MAINMENU";
WndClass.lpszClassName = g_szClassName;
WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&WndClass))
{
MessageBox(0, "注册窗口失败", "错误信息",
MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
return 0;
}

hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"一个记事本程序",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
NULL, NULL, g_hInst, NULL);

if(hwnd == NULL)
{
MessageBox(0, "创建窗口失败", "错误信息",
MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
return 0;
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

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

2.记事本头文件 sample.h
#define CM_FILE_SAVEAS 9072
#define CM_FILE_EXIT 9071
#define CM_FILE_OPEN 9070
#define CM_ABOUT 9069

3.记事本资源文件

#include "sample.h"

A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "sample.ico"

MAINMENU MENU
{
POPUP "文件(&F)"
{
MENUITEM "打开(&O)...", CM_FILE_OPEN
MENUITEM "另存为(&S)...", CM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "关闭", CM_FILE_EXIT
}

POPUP "帮助(&H)"
{
MENUITEM "关于(&A)", CM_ABOUT
}
}

一点经验

所有Windows 程序的基本结构都与上面的实例相同或相近(说明:有的程序是将窗口类和窗机窗口封装成函数后调用,其实质是一样的),记住一个例子,编写其他程序时,在其上面修改即可。

一点建议:由于Windows 编程精大博深,初学者想把什么都搞明白是不可能的,要学会一点“不求甚解” ,这里说的“不求甚解”并不是指不认真学习。初学者最怕钻牛角尖:一个问题不明白,就在那里卡住,非解决它不可——这种方法是不可取的。

首先,它会严重打击你的自信心,使你丧失继续学习下去的兴趣;

其次,这样浪费了许多时间。因此学习时要给自己留一些“不懂”的余地。例如第一遍读书时要允许自己似懂非懂,用规定的时间(例如两个星期)把它看完,然后开始第二遍学习。开始时许多不明白的东西,下次就容易理解多了。

Ⅲ VC++菜鸟问题 拖拽文件到文本框获取文件路径简单问题

//DLG.cpp:
#include"drag.h"
#include"fileedit.h"//添加这一行
#include"DLG.h"//要添加在这一行之前

在两个对话框类的cpp文件中,包含自定义类的头文件,注意要保证在对话框类头文件之前。

//dragDlg.cpp:
#include"stdafx.h"
#include"drag.h"
#include"fileedit.h"//同理
#include"dragDlg.h"

Ⅳ Visual C++中GetOpenFileName与CFileDialog函数的区别

GetOpenFileName是一个弊卜Windows api函数,CFileDialog是MFC中的一个类,封亩绝装了迅卜姿对前者的调用

Ⅳ OPENFILENAME 的用法

不知道你现在是学到哪滑高里,我就详细点解答吧。首先,OPENFILENAME在头文件是没有的,所以只有自己创建。
openFileName(char* pathName,char* textContent){
CFile file(pathName,CFile::modeRead); //以只读方式打开
file.Read(textContent,file.GetLenght()); //读取
textContent[file.GetLenght()]='\0'; //腊让数读取的文本内容后加0有利于后面的输轮首出
file.Close(); //关闭文件
}

int main(){
char a[]="C:\test.txt";
char* outPut;
openFileName(a,outPut);
cout<<outPut;
}
以上用的是CFile类,也可以用文件流的FILE类,代码差不多

Ⅵ C++ 读别人的程序,制作了下面的头文件,包含在主程序当中,但是我读不懂啊,好多不认识,求大神给解释!

前三行注释,没用
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
就是这个(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)没有定义的话,下面定义一下
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
这一段的意思是如果
_MSC_VER > 1000这个条件满足
就执行#pragma once
#pragma once的作用防止头文件重复包肢祥辩含

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

// Windows Header Files:
#include <windows.h>
#include <process.h> /* _getpid() */
#include <shellapi.h> /* ShellExecute() */
这一段要用到的是window系统内的函数,所以先声明,后面的几个.h文件是调用的是window系统中的函数宴枣

// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <stdio.h> /* sprintf() */
#include <oledlg.h> /* OPENFILENAME */
这一段类似,是用到C语言中(编译器中)的函数,下面的.h是调用那些函数
// Local Header Files

// TODO: reference additional headers your program requires here

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这一段也是没用的东西,注释

最后就是定义结束了
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
反正你只要看到/* */和// 就是注释,没起任何作用
头文件的作用在编译器中都会有说明,或者网络一下都可以历缺找到,个人建议去编译去中看

阅读全文

与openfilename头文件相关的资料

热点内容
是大数据还是兄弟情什么意思 浏览:16
手机qq收藏的文件在哪 浏览:523
苹果笔记本登录钥匙串 浏览:448
有线以太网未识别网络 浏览:524
win10彻底重装系统 浏览:411
word怎么向上插入表格 浏览:335
jscookie重新赋值 浏览:948
如何用微信传微云文件怎么打开方式 浏览:103
保存桌面的文件路径怎么更改 浏览:732
笔记本win10没有热点 浏览:408
广州导航升级 浏览:859
店铺升级缴纳服务费 浏览:199
法兰克车床车牙去半扣怎么编程 浏览:227
初一零基础如何学编程 浏览:798
上古卷轴5铁匠升级方法 浏览:663
公路自行车升级 浏览:253
2014年苹果汁价格 浏览:995
魅蓝2手机锁屏密码忘了 浏览:980
柔和七星哪个版本好抽 浏览:652
tcpip网络报警主机 浏览:362

友情链接