试图建立在C#中数学输入面板(Trying to create a Math Input Panel

2019-09-01 05:10发布

如何创建在C#中的数学输入面板?

我试图把它变成一个DLL和调用它,但它只是关闭的时候了。

#include <stdafx.h>
#include <atlbase.h>
#include "micaut.h"
#include "micaut_i.c"

extern "C" __declspec(dllexport) int run()
{
   CComPtr<IMathInputControl> g_spMIC; // Math Input Control
   HRESULT hr = CoInitialize(NULL);
   hr = g_spMIC.CoCreateInstance(CLSID_MathInputControl);
   hr = g_spMIC->EnableExtendedButtons(VARIANT_TRUE);
   hr = g_spMIC->Show();

   return hr;
}

我调用的DLL函数在C#和面板弹出,但消失的时候了。 有什么建议?

Answer 1:

在C#项目中,添加对COM库的引用micautLib 。 然后你可以使用下面的代码(在C#):

MathInputControl ctrl = new MathInputControlClass();
ctrl.EnableExtendedButtons(true);
ctrl.Show();

我不知道如果这正是你应该怎么做,但这似乎干净工作(完整的程序)。

using System;
using System.Windows.Forms;
using micautLib;

namespace MathInputPanel
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MathInputControl ctrl = new MathInputControlClass();
            ctrl.EnableExtendedButtons(true);
            ctrl.Show();
            ctrl.Close += () => Application.ExitThread();
            Application.Run();
        }
    }
}


文章来源: Trying to create a Math Input Panel in C#