一、MFC 剪切板
    CListBox *pList = (CListBox*)GetDlgItem(IDC_LIST1);  // 获取ListBox控件句柄
CString strTmp;
pList->GetText(pList->GetCurSel(), strTmp); // 获取当前控件选中的内容
CString strOutput;
AfxExtractSubString(strOutput, strTmp, , ';'); // 提取字符串
TRACE("0-------%S\n", strOutput); // 日志显示
ShellExecute(NULL, TEXT("open"), strOutput, NULL, NULL, SW_SHOW); AfxExtractSubString(strOutput, strTmp, , ';'); // 提取字符串 HGLOBAL p = nullptr; // 定义一个全局变量
if (OpenClipboard()) // 打开剪切板并判断剪切板是否打开
{
EmptyClipboard(); // 清空剪切板
USES_CONVERSION;
char szName[];
strcpy(szName, T2A(strOutput)); // 将CString类型的字符串拷贝到char [] 类型中 HGLOBAL hMem = GlobalAlloc(GHND, sizeof(szName)); // 分配全局内存
char *pmen = (char *)GlobalLock(hMem); // 锁定全局内存
memcpy(pmen, szName, sizeof(szName)); // 向全局内存中拷贝数据
SetClipboardData(CF_TEXT, hMem); // 设置数据到剪切板
CloseClipboard(); // 关闭剪切板
p = GlobalFree(hMem); // 释放全局内存
}

二、MFC 线程

MFC中有两类线程,分别称为工作者线程和用户界面线程。二者的区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。

工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程之外的用户输入,响应用户及系统所产省的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,他们都只需要线程的启动地址即可启动线程来执行任务。

在MFC中,一般用于全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程。两种重载函数原型和参数分别说明如下:

(1)工作者线程

CWndThread *AfxBeginThread(AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
UINT nPriority=THREAD_PRIORITY_NORMAL,
UINT nStackSize = ,
DWORD dwCreateFlags = ,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

(2)UI线程(用户界面线程)

CWndThread *AfxBeginThread(CRuntimeClass *pThreadClass,
int nPriority=THREAD_PRIORITY_NORMAL,
UINT nStackSize = ,
DWORD dwCreateFlags = ,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

简单的线程案例:

#include <afxwin.h>
#include <stdio.h> UINT MyFunc(LPVOID)
{
printf("我的线程ID是%d\n", AfxGetThread()->m_nThreadID);
return ;
} int main()
{
for (int i = ; i < ; i++)
{
AfxBeginThread(MyFunc, NULL);
}
system("pause");
return ;
}

结果显示:

MFC 剪切板的使用、线程介绍的更多相关文章

  1. 背水一战 Windows 10 (102) - 应用间通信: 剪切板

    [源码下载] 背水一战 Windows 10 (102) - 应用间通信: 剪切板 作者:webabcd 介绍背水一战 Windows 10 之 应用间通信 剪切板 - 基础, 复制/粘贴 text ...

  2. C# 线程间不能调用剪切板的问题

    最近做一个项目,需要用到线程,而且要用到剪切板,创建了一个子线程之后发现在子线程中剪切板上获取不到数据,当时特别纳闷,上网查资料,最后终于搞定,现将解决方法归纳如下: 第一步: public void ...

  3. [转载]3.5 UiPath对剪切板的介绍和使用

    一.剪切板操作的介绍 模拟用户使用剪切板操作的一种行为: 例如使用设置剪切板(SettoClipboard),从剪切板获取(GetfromClipboard)的操作 二.剪切板相关操作在UiPath中 ...

  4. [.NET开发] C#实现剪切板功能

    C#剪切板 Clipboard类 我们现在先来看一下官方文档的介绍 位于:System.Windows.Forms 命名空间下 Provides methods to place data on an ...

  5. 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件

    [源码下载] 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 作者:webabcd 介绍重新想象 Windows 8 Store ...

  6. Android剪切板传递数据传递序列化对象数据

    一.剪切板的使用介绍 1. 剪切板对象的创建 使用剪切板会用到,ClipboardManager对象,这个对像的创建不可以使用构造方法,主要是由于没有提供public的构造函数(单例模式),需要使用A ...

  7. 使用clipboard.js复制页面内容到剪切板

    最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的 答案后点击“复制答案”按钮将答案复制到系统剪切板.本以为这是一个小case,但是发现如果 要对各种主流浏览器都有良好的兼 ...

  8. android利用剪切板来实现数据的传递

    在Android开发中我们经常要遇到的一个问题就是数据在不同的Activity之间的共享.在Android开发中有很多种方法可以达到这个目地. 这里介绍一种比较常见.又常用的一种方法就是使用剪切板.我 ...

  9. ASP.NET MVC实现剪切板功能

    前言 关于复制粘贴的功能,好像不用劳师动众的写后端代码,JS就可以,但正如大家所知道的,兼容性问题,当然这么通用的功能怎么可能没有一个通用的方案呢,于是便找到了一款jquery插件 jquery.cl ...

随机推荐

  1. 共享内存system v(未编译)

    #include <stdio.h> #include <string.h> #include <errno.h> #include <unistd.h> ...

  2. 【Java】JavaWeb文件上传和下载

    文件上传和下载在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件 ...

  3. 2018.08.06 bzoj1500: [NOI2005]维修数列(非旋treap)

    传送门 平衡树好题. 我仍然是用的fhqtreap,感觉速度还行. 维护也比线段树splay什么的写起来简单. %%%非旋treap大法好. 代码: #include<bits/stdc++.h ...

  4. python面向对象-3类的静态方法和类方法

    还是以上次的洗衣机例子: class Washer: company='ZBL' def __init__(self,water=10,scour=2): self._water=water #不想让 ...

  5. SpringMVC零碎笔记

    在web.xml里可以配置webapp的默认首页,格式如下: <welcome-file-list> <welcome-file>index.html</welcome- ...

  6. python corrcoef

    该函数得到相关系数矩阵. 例子: vc=[1,2,39,0,8] vb=[1,2,38,0,8] print mean(multiply((vc-mean(vc)),(vb-mean(vb))))/( ...

  7. post异步请求

    //创建url NSURL *url = [[NSURL alloc] initWithString:@"http://api.hudong.com/iphonexml.do"]; ...

  8. Android真机调试试验

    之前一直使用模拟器,很不好用,今天使用真机调试试验. 准备材料:电脑,Android手机. 首先,就遇到了一个问题,我的手机是华为的,之前不知道怎么回事,打开调试总是自动关闭,而且切换总是切换不了,老 ...

  9. (最长回文串 模板) 最长回文 -- hdu -- 3068

    http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory ...

  10. (求树的直径)Warm up -- HDU -- 4612

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 给一个无向图, 加上一条边后,求桥至少有几个: 那我们加的那条边的两个顶点u,v:一定是u,v之 ...