0,获取指定的系统路径:

#include <shlobj.h> 
    #pragma comment(lib, "shell32.lib")

TCHAR szPath[MAX_PATH];
  ::SHGetSpecialFolderPath(NULL, szPath, CSIDL_PERSONAL, FALSE);

1,打开文件或选中文件:

BOOL OpenDownFile(const TCHAR* pFilePath, BOOL bOpenCatalogue)

    std::wstring wstrPath; 
    if (bOpenCatalogue) 
    { 
        wstrPath.append(L"/n,/select,"); 
        //打开文件所在目录,选中指定文件 
    }

wstrPath.append(pFilePath);//没有/n,/select,参数的话是直接打开指定文件或目录
  ShellExecute(NULL, L"open", L"Explorer.exe", wstrPath.c_str(), NULL, SW_SHOWDEFAULT);

return TRUE;
}

2,文件另存为:
BOOL SaveFileAs(const
HWND hWnd, const
TCHAR* pDefaultFileName)
{
    std::wstring
FileSavePath;
    std::wstring
fileNameAll;
    std::wstring
wstrPostfix;

fileNameAll = pDefaultFileName;

    size_t
ipoint = fileNameAll.rfind(L".");
  
    if(ipoint == fileNameAll.npos)//无后缀名

    {

        wstrPostfix.clear();

    }

    else

    {

        wstrPostfix = fileNameAll.substr(ipoint+1);

    }

TCHAR
filename[MAX_PATH] = {0};

  TCHAR
pstrFilter[MAX_PATH] = {0};

  wsprintf(pstrFilter,L"%s Files(*.%s)|*.%s|All Files(*.*)|*.*||",wstrPostfix.c_str(),wstrPostfix.c_str(),wstrPostfix.c_str());

OPENFILENAME
ofn;

    ZeroMemory(&ofn, sizeof(ofn));

  wcscpy_s(filename,_countof(filename),fileNameAll.c_str());
 
   ofn.lpstrFile        = filename;
    ofn.nMaxFile        = MAX_PATH;

    ofn.lpstrFilter        = L"*.*";
  
    ofn.lpstrDefExt        = wstrPostfix.c_str();

    ofn.lpstrTitle        = L"另存为";
  
    ofn.Flags        = OFN_HIDEREADONLY | OFN_PATHMUSTEXIST;

    ofn.FlagsEx     = OFN_EX_NOPLACESBAR;

    ofn.lStructSize        = sizeof(OPENFILENAME);
    ofn.hwndOwner        = hWnd;

    ofn.hInstance        = NULL;

if (::GetSaveFileName(&ofn))

    {

        FileSavePath = filename;

    }

    else

    {

        return
FALSE;

    }

return
TRUE;

}

3,选择文件
#include
<commdlg.h>
BOOL
SelectFile(std::wstring& strSelectFile )
{

    OPENFILENAME
opfn;

    TCHAR
strFilename[MAX_PATH];

    ZeroMemory(&opfn, sizeof(OPENFILENAME));

    opfn.lStructSize = sizeof(OPENFILENAME);

    opfn.lpstrFilter = L"pdf Files(*.pdf)\0 *.pdf\0";//设置过滤

    opfn.nFilterIndex = 1;

    opfn.lpstrFile = strFilename;

    opfn.lpstrFile[0] = '\0';

    opfn.nMaxFile = sizeof(strFilename);

    opfn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;

    if (::GetOpenFileName(&opfn))

    {

        strSelectFile = strFilename;

    }

    return
TRUE;

}

4,文件拖拽

DragAcceptFiles(hWnd, TRUE);

case
WM_DROPFILES:

{
  HDROP
hDrop = (HDROP)wParam;

  TCHAR
szFileName[MAX_PATH];

  int
count = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);
  if(count)

  {
    for(int
i=0; i<count;i++)

        { 
      int
pathLen = DragQueryFile(hDrop, i, szFileName,MAX_PATH);

      //Do(szFileName);

    }
  
}

}

break;

5,透明窗口

SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(m_hwnd, GWL_EXSTYLE) ^ 0x80000);

HINSTANCE
hInst = LoadLibrary(L"User32.DLL");
 
if (hInst)

{

    typedef
BOOL(WINAPI *MYFUNC)(HWND, COLORREF, BYTE, DWORD);

    MYFUNC
fun = NULL;

    fun = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");

    if (fun)

        fun(hWnd, 0, 255 / 2, LWA_ALPHA); //半透明

    FreeLibrary(hInst);

}

WIN32一些文件及窗口操作的更多相关文章

  1. C# System.IO和对文件的读写操作

      System.IO命名空间中常用的非抽象类 BinaryReader 从二进制流中读取原始数据 BinaryWriter 从二进制格式中写入原始数据 BufferedStream 字节流的临时存储 ...

  2. C#对文件/目录的操作:Path、File、Directory、FileStream、StreamReader、StreamWriter等类的浅析

    以下类的命名空间都是:System.I/0; 一.Path:主要对文件路径的操作! 常用方法: String path=@"C:\a\b\c\123.txt"; 1-1.Path. ...

  3. C++学习48 对ASCII文件的读写操作

    如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...

  4. python-web自动化-文件上传操作(非input标签的上传,需要借助第三方工具)

    文件上传操作 一.文件上传分两种情况:1. 如果是input可以直接输入路径的,可以直接调send_keys输入路径 2. 非input标签的上传,需要借助第三方工具:    2.1 Autolt 需 ...

  5. win32程序之子窗口编程

    win32程序之子窗口编程 一丶简介.什么是子窗口 在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环. 那么有很多窗口其实Windows已经帮我们创建出来了.我们直接使用 ...

  6. 使用cmd命令行窗口操作SqlServer

    本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql  ?/   ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...

  7. 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口

    window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...

  8. vim 窗口操作:多tab|窗口拆分

    转 我是一个vimer,还在用着这个上古时代的编辑器,但我并不是守旧派,因为即使是 现在,vim也在不断的创新.我用vim也有一两年的光景了,但是我还是不敢我自己 精通vim,当然我使用vim基本是两 ...

  9. WPF文件和文件夹的操作

    1.对文件的操作 private void button_chose_Click(object sender, RoutedEventArgs e) { var openFileDialog = ne ...

随机推荐

  1. sed命令查找<media/msm_cam_sensor.h>替换为"len_msm_cam_sensor.h"

    sed -i 's:<media/msm_cam_sensor.h>:"len_msm_cam_sensor.h":g' $(find . -name "*. ...

  2. oschina git 私有项目使用。。

    工作流程 安装设置 git 下载最新版本的git http://git-scm.com/downloads 当你安装完成git的时候,你需要简单的配置一下,打开终端: 用户名 第一步,你需要告诉git ...

  3. Codeblocks支持C++11

    Setting->Compiler 直接在“Have g++ follow the C++11 ISO C++ language standard [-std=c++11]” 选项上打勾 保存就 ...

  4. RDDTest.scala

    /** * Created by root on 9/7/15. */ import org.apache.spark.SparkContext import org.apache.spark.Spa ...

  5. debian的备份与还原

    不管是windows还是linux 备份都很重要 因为配好一个系统是要花很多时间的 出了问题的话 有备份直接还原就可以了 windows下有ghost 那么linux下呢?Linux可以在系统正在运行 ...

  6. Spark_Api_图解

  7. 利用 Composer 一步一步构建自己的 PHP 框架(三)——设计 MVC

    终于可以 “一次编写,到处发布” 了,泪流满面! 今天凌晨我从一点多开始搞了四个小时到 5:20,终于搞出了个 Emlog 的 MarkDown 插件!欢迎 Emloger 尝试! 本教程示例代码见  ...

  8. View绘制详解(五),draw方法细节详解之View的滚动/滑动问题

    关于View绘制系列的文章已经完成了四篇了,前面四篇文章主要带小伙伴们熟悉一下View的体系的整体框架.View的测量以及布局等过程,从本篇博客开始,我们就来看看View的绘制过程.View的绘制涉及 ...

  9. hdu 3473 裸的划分树

    思路: 用Sum[dep][i]记录从tree[po].l到i中进入左子树的和. #include<iostream> #include<algorithm> #include ...

  10. maven的一些常用配置

    配置JDK<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupI ...