| 1.18.1.5.1 Simple Hello World Dialogfirst-HTML-dialog Hello World DialogHTML Dialog
 
 SummaryThis tutorial will show how to:
  Create an HTML page. Display the HTML page in the dialog box by OriginC. Build an event handler to respond to events of dialog.
 Minimum Origin Version Required: Origin 2017 Sample Files index.html: This is the HTML code for the html page. HelloWorldDlg.cpp: This is the OriginC code to call out the HTML page and show it in the dialog. HelloWorldDlg1.cpp: This is the OriginC code that includes more advanced features. 
 
| Note: You can download the sample files here. |  Creating an HTML PageWhen you create an HTML dialog, the first step is creating an HTML page.
 
 Start Origin and open Code Builder by clicking button  . Create a new HTML file named index.html and save it to a new folder named Hello World.
 Inside the< head > and < body > elements, add the other HTML elements such as < title >, < h1 >, < p > to construct an HTML page.
<!DOCTYPE html>
<html>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
    <head>
       <title>
          A Small Hello 
       </title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is very minimal "hello world" HTML document.</p> 
    </body>
</html> 
| Note: When editing is complete, you can check the content of this page by opening it with any web browser. |  Creating an HTML dialogIn this section, you will make the generated HTML page display in the dialog.
 
 In Code Builder, create a new cpp file named HelloWorldDlg.cpp under the path of the HTML file.
 Include three needed header files at first. Note that HTMLDlg.h is new in Origin 2017 which connects Origin and the HTML dialog together.
#include <Origin.h>
#include <..\OriginLab\DialogEx.h>
#include <..\OriginLab\HTMLDlg.h> Derive a user defined HTML dialog class from the class HTMLDlg, and point to the HTML page inside the methodGetInitURL().class HelloWorldDlg: public HTMLDlg
{
    public:
        string GetInitURL() //get the path of html file                    
	{
            string strFile = __FILE__; //the path of the current file
	    return GetFilePath(strFile) + "index.html";
	}
}; To open the HTML dialog, save all the code and build it, then execute the following function.
void hello()
{
    HelloWorldDlg dlg;
    dlg.DoModalEx(GetWindow());
} An HTML dialog with "Hello World" will pop up:
 
 Advanced FeatureIf you want to learn more,  try to improve the program by modifying the dialog and adding event handlers.
 
| Note: The complete code of the following features is available in HelloWorldDlg1.cpp. |  Preventing dialog resizingTo do this, use ModifyStyleto disable WS_THICKFRAME in the methodOnInitDialoginside your dialog class: BOOL OnInitDialog()
{
    ModifyStyle(WS_THICKFRAME, 0);//prevent resizing
    return HTMLDlg::OnInitDialog();
}Setting dialog sizeYou need to call a parent class method GetDlgInitSizefrom you dialog class, and specify the width and height of the dialog in it: BOOL GetDlgInitSize(int& width, int& height)//get dialog size
{
    width = 500;
    height = 200;
    return true;
}Adding event handlerSimilar to Dialog Builder, a message map is used to specify which events will be handled and which function will be called to handle them.
As an example, an event handler methods are added inside the user defined class HelloWorldDlg to pop up a message when the dialog is closed.
 
 Map the dialog message by the following message map inside the class HelloWorldDlg.//Message Map
public:
    EVENTS_BEGIN_DERIV(HTMLDlg)
        ON_DESTROY(OnDestroy)
    EVENTS_END_DERIVAdd an event handler method inside the class HelloWorldDlgto pop up a message box when the dialog is closed.BOOL OnDestroy()
{
    MessageBox(GetSafeHwnd(), _L("Thank you and have a good day!") ,_L("Message"));
    return true;
} |