所以我有一些代码在gdi32.dll的图片框顶部创建一个高亮效果,我想知道是否有更简单的方法来做到这一点System.Drawing.Graphics?基本上使用gdi32.dll,我必须在绘制后捕获屏幕截图,将其发布到我的图片框然后我能够绘制更多的东西并更改我使用的笔的颜色.如果我只是尝试更改笔的粗细和颜色并再次在屏幕上绘图,如果我改变了已经绘制的内容.
现在我有一个使用System.Drawing.Graphics和大量数学的版本FillPolygon但如果我画了一个我已经画过的区域,它只会使我画的区域更暗.只要你还没有使用鼠标遮住区域,它就不能用gdi32.dll进行justr阴影处理.有什么建议?
public partial class Form9 : Form
{
private bool is_mouse_down { get; set; } // Will check if the mouse is down or not.
private Color Pen_Color = new Color();
private int Pen_Type { get; set; }
private int Thickness { get; set; }
private bool Start { get; set; }
List<Point> Points = new List<Point>();
public Form9()
{
InitializeComponent();
pictureBox1.Dock = DockStyle.Fill;
Pen_Color = Color.Blue;
Pen_Type = 13; // Type = …Run Code Online (Sandbox Code Playgroud) 最近,我一直在尝试让 DLL 根据编译的平台具有不同的 InternalName 和 OriginalFilename。如果 DLL 设置为 Release|x64,则它应该有一个名称,如果设置为 Release|x86,则它应该有另一个名称。我以前只有 2 个不同的项目,但觉得创建一个 ifdef 更容易。问题是无论我做什么,InternalName 和 OriginalFilename 最终总是 x86 名称。
下面是我存储 ifdef 的 Resource.h 文件的一个小片段。
下面的代码片段来自定义该详细信息的 dlls .rc 文件。
#ifdef WIN64
// 64 bit windows
#define DLLNAME "MyDLL.dll"
#else
// 32 bit windows
#define DLLNAME "MyDLL_WIN32.dll"
#endif // _WIN64 or _WIN32
Run Code Online (Sandbox Code Playgroud)
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Software Company Inc."
VALUE "FileDescription", "Some DLL"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", DLLNAME
VALUE "LegalCopyright", "Copyright (C) 2019. All rights reserved." …Run Code Online (Sandbox Code Playgroud) c++ winapi conditional-compilation resource-files visual-studio
这是我在表单中的代码。该函数应该打开我创建的另一个表单作为对话框,但我不断收到错误:
已经可见的表单无法显示为模式对话框。在调用 showDialog 之前将窗体的visible 属性设置为 false。
我已经查看了所有表单属性,但无法在任何地方找到它。我缺少什么?使用 Visual Studio 2015 和带有 .net 4 的 winforms 应用程序
private void disconnect_Click(object sender, EventArgs e)
{
ShowDialog(new ManagerWarning());
}
Run Code Online (Sandbox Code Playgroud)