VC如何实现拖拽功能...

Python019

VC如何实现拖拽功能...,第1张

派生一个编辑框类,基类为CEdit (子类化)

添加WM_DROPFILES消息

void CMyEdit::OnDropFiles(HDROP hDropInfo)

{

int fcount = ::DragQueryFile(hDropInfo,-1,NULL,NULL)

for(int i=0i<fcounti++)

{

int fsize = ::DragQueryFile(hDropInfo,i,NULL,NULL)

HANDLE hHeap = ::GetProcessHeap()

char *fname = (char *)::HeapAlloc(hHeap,HEAP_ZERO_MEMORY,fsize++)

::DragQueryFile(hDropInfo,i,fname,fsize)

this->SetWindowText(fname)

::HeapFree(hDropInfo,HEAP_ZERO_MEMORY,fname)

}

CEdit::OnDropFiles(hDropInfo)

}

在对话框OnInitDialog()中开启编辑框文件拖放功能

m_edit.DragAcceptFiles(1)

这要看你所使用的系统平台,图形化编程与系统平台息息相关

对于C语言来说,有许多成熟的框架。比如Windows上可使用Windows的系统API,Linux下有GTK,嵌入式环境下有miniGUI等。

C语言是一门比较特殊的语言,虽然也是高级编程语言的一种,但是为了和其他语言区分开来,部分人也会将C语言称作中级语言,主要是因为C语言不是面向对象的语言,并且有指针这样的利器可以直接对底层以及硬件进行操作。

正是因为C语言不是面向对象的语言,在图形化这样更偏上层的应用中,一般会使用C++替代C语言,这样能极大的降低开发的工作量。

比如,Windows下可使用MFC,WPF也支持C++。Linux下一般用跨平台的QT(可在Windows/MAC等多种平台运行)。嵌入式环境下有嵌入式的QT版本。