请教:我想把桌面的图标拖到我的窗体上放置,用vb如何写?

请教:我想把桌面的图标拖到我的窗体上放置,用vb如何写?,第1张

Private Sub Form_Load()

Me.OLEDropMode = 1

End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Data.GetFormat(vbCFFiles) = True Then MsgBox Data.Files(1), vbExclamation

End Sub

方法/步骤

1

打开VisualStudio编译环境,建立一个新的以C#为模版的Windows窗体应用程序。这里取名为“示例项目”。

编译并运行一次后,在示例项目中的Debug文件中可以找到编译好的可执行文件。当前该文件所使用的图标就是所以C#程序的默认图标。

在右侧解决方案管理器中找到当前的解决方案,右键单击,并在d出的菜单中选择“属性”。

进入属性页后,在“应用程序”选项卡中找到“图标和清单”,点击右侧的“...”按钮。

从计算机的本地文件中找到一个ICO格式的文件作为图标。单击“打开”按钮确认选择。

可以看到此时图标已经修改成功了。

编译并运行程序。

可以发现此程序的图标已经变为了刚才设置的图标。

但上方的工作仅仅设置了程序的显示图标,程序内部显示在窗体左上角的图标,还需要在每个窗体的Icon属性中专门设置。

单击Icon属性最后的“...”按钮,就可以为窗体左上角的图标指定一个图标了。

如果程序具有多个窗体,则每个窗体的左上角图标都要重新设置。

你说的这种实际上就是如何使应用程序具有可接收拖动 *** 作的问题

就是让应用程序可接收 WM_DROPFILES 消息

实现方法 如下

生成窗体时使用 CreateWindowEx

dwExStyle 属性中 加上 WS_EX_ACCEPTFILES

或者

窗体生成以后

DragAcceptFiles(hWnd, true)

也可以

窗体已经可以接收 WM_DROPFILES

处理 WM_DROPFILES 消息

case WM_DROPFILES:

{//当文件拖进来时

TCHAR szBuf[ MAX_PATH ]

DragQueryFile((HDROP)wParam, 0, szBuf, MAX_PATH-1)//如果多个文件被拖拽的情况只取最后一个文件

WinExec(szBuf, SW_SHOWNORMAL)//如果是exe文件就打开执行了

DragFinish((HDROP)wParam)

}

MFC添加 WM_DROPFILES消息映射 就可以了

至于将图标保留在窗体里,那就是从应用程序中提取图标

保存信息了,网上有很多,不细说了


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11927359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存