登录 注册 找回密码 开启辅助访问 商业用户中心 购物车有0件商品 切换到宽版
搜索
查看: 3358|回复: 2
打印 上一主题 下一主题

[源码] [网页]浏览器 NiceBASIC例子

[复制链接]
跳转到指定楼层
楼主
发表于 2010-10-23 11:28:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kjgmj 于 2010-10-23 18:35 编辑

看代码吧:(三个文件)
TinyWeb.bas
#引用 仅一次 "windows.bi"
#引用 "TinyWeb.bi"
函数 DlgProc ( 传值 hWin 为 HWND , 传值 uMsg 为 UINT , 传值 wParam 为 WPARAM , 传值 lParam 为 LPARAM ) 为 整数型
  变量 rect 为 RECT
  变量 i 为 整数型
  变量 wUrl 为 宽文本 * 260
  判断 分支 uMsg
    分支 WM_INITDIALOG
      hWeb = CreateWindowEx ( WS_EX_CLIENTEDGE , "AtlAxWin" , "http://www.ywgn.net/", WS_CHILD 或 WS_VISIBLE 或 WS_VSCROLL 或 WS_HSCROLL , 0 , 0 , 100,100 , hWin , 0 , hInstance , 0 )
      ' 读入数据 the IUnknown interface
      AtlAxGetControl ( hWeb , pIUnknown )
      IUnknown = 转换类型 ( IUnknown 指针 , * pIUnknown )
      i = IUnknown - > AddRef ( pIUnknown )
      ' 读入数据 the IWebBrowser interface
      i = IUnknown - > QueryInterface ( pIUnknown , @ IID_IWebBrowser , @ pIWebBrowser )
      IWebBrowser = 转换类型 ( IWebBrowser 指针 , * pIWebBrowser )
      i = IWebBrowser - > AddRef ( pIWebBrowser )
      i = IUnknown - > Release ( pIUnknown )
      '
    分支 WM_COMMAND
      判断 分支 取低十六位 ( wParam )
        分支 IDM_FILE_GOTO1
          MultiByteToWideChar ( CP_ACP , 0 , 取文本指针 ( "http://www.ywgn.net/") , - 1 , @ wUrl , 260 )
          i = IWebBrowser - > Navigate ( pIWebBrowser , @ wUrl , NULL , NULL , NULL , NULL )
          '
        分支 IDM_FILE_BACK
          i = IWebBrowser - > GoBack ( pIWebBrowser )
          '
        分支 IDM_FILE_FORWARD
          i = IWebBrowser - > GoForward ( pIWebBrowser )
          '
        分支 IDM_FILE_EXIT
          i = IWebBrowser - > Release ( pIWebBrowser )
          EndDialog ( hWin , 0 )
          '
      结束 判断
    分支 WM_CLOSE
      EndDialog ( hWin , 0 )
      '
    分支 WM_SIZE
      GetClientRect ( hWin , @ rect )
      MoveWindow ( hWeb , 0 , 0 , rect.right , rect . bottom , TRUE )
      '
    分支 否则
      返回 FALSE
      '
  结束 判断
  返回 TRUE
结束 函数
'''
''' Program start
'''
'结束 函数
  ' ' Create the Dialog
  ' '
  hInstance = GetModuleHandle ( NULL )
  hDll = LoadLibrary ("atl.dll")
  如果 hDll 则
    AtlAxWinInit = 转换类型 ( 任意 指针 , GetProcAddress ( hDll ,"AtlAxWinInit") )
    AtlAxGetControl = 转换类型 ( 任意 指针 , GetProcAddress (hDll ,"AtlAxGetControl") )
    如果 AtlAxWinInit ( ) 则
      DialogBoxParam ( hInstance , 转换类型 ( 字符型 指针 , IDD_DLG1 ) , NULL , @DlgProc , NULL )
    结束 如果
    FreeLibrary (hDll)
  结束 如果
  ' '
  ' ' 程序名 has ended
  ' '
  ExitProcess (0)
  结束
'''
''' Program end
'''
TinyWeb.bi

#定义 IDD_DLG1                1000
#定义 IDR_MENU                10000
#定义 IDM_FILE_GOTO1          10002
#定义 IDM_FILE_BACK           10003
#定义 IDM_FILE_FORWARD        10004
#定义 IDM_FILE_EXIT           10001
类型 IID
Data1 为 无符整数型
Data2 为 无符短整数型
Data3 为 无符短整数型
Data4 ( 0 至 7 ) 为 无符字节型
结束 类型
类型 IUnknown
  QueryInterface 为 函数 ( 传值 pif 为 任意 指针 , 传值 iid 为 IID 指针 , 传值 pInterface 为 任意 指针 ) 为 整数型
  AddRef 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  Release 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
结束 类型
类型 IWebBrowser
  QueryInterface 为 函数 ( 传值 pif 为 任意 指针 , 传值 iid 为 IID 指针 , 传值 pInterface 为 任意 指针 ) 为 整数型
  AddRef 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  Release 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  GetTypeInfoCount 为 函数 ( 传值 pif 为 任意 指针 , pctinfo 为 DWORD ) 为 整数型
  GetTypeInfo 为 函数 ( 传值 pif 为 任意 指针 , 传值 iTInfo 为 DWORD , 传值 lcid 为 DWORD , 传值 ppTInfo 为 DWORD ) 为 整数型
  GetIDsOfNames 为 函数 ( 传值 pif 为 任意 指针 , 传值 riid 为 DWORD , 传值 rgszNames 为 DWORD , 传值 cNames 为 DWORD , 传值 lcid 为 DWORD , 传值 rgDispId 为 DWORD ) 为 整数型
  Invoke 为 函数 ( 传值 pif 为 任意 指针 , 传值 dispIdMember 为 DWORD , 传值 riid 为 DWORD , 传值 lcid 为 DWORD , 传值 wFlags 为 DWORD , 传值 pDispParams 为 DWORD , 传值 pVarResult 为 DWORD , 传值 pExcepInfo 为 DWORD , 传值 puArgErr 为 DWORD ) 为 整数型
  GoBack 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  GoForward 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  GoHome 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  GoSearch 为 函数 ( 传值 pif 为 任意 指针 ) 为 整数型
  Navigate 为 函数 ( 传值 pif 为 任意 指针 , 传值 bstrURL 为 宽文本 指针 , 传值 Flags 为 任意 指针 , 传值 TargetFrameName 为 任意 指针 , 传值 PostData 为 任意 指针 , 传值 Headers 为 任意 指针 ) 为 整数型
结束 类型
变量 AtlAxWinInit 为 函数 为 BOOL
变量 共享 AtlAxGetControl 为 函数 ( 传值 hWin 为 HWND , 传址 pp 为 整数型 指针 ) 为 整数型
变量 共享 hDll 为 HMODULE
变量 共享 hInstance 为 HINSTANCE
变量 共享 hWeb 为 HWND
变量 共享 IID_IWebBrowser 为 IID = (&H0EAB22AC1,&H030C1,&H011CF,{&H0A7,&H0EB,&H000,&H000,&H0C0,&H05B,&H0AE,&H00B})
变量 共享 pIUnknown 为 整数型 指针
变量 共享 IUnknown 为 IUnknown 指针
变量 共享 pIWebBrowser 为 整数型 指针
变量 共享 IWebBrowser 为 IWebBrowser 指针

TinyWeb.rc
#define IDD_DLG1 1000
#define IDR_MENU 10000
#define IDM_FILE_GOTO1 10002
#define IDM_FILE_BACK 10003
#define IDM_FILE_FORWARD 10004
#define IDM_FILE_EXIT 10001
IDD_DLG1 DIALOGEX 6,5,371,275
CAPTION "Tiny Web Browser"
FONT 8,"MS Sans Serif",400,0,0
MENU IDR_MENU
STYLE 0x10CF0800
BEGIN
END
IDR_MENU MENU
BEGIN
  POPUP "File"
  BEGIN
    MENUITEM "Goto http://www.ywgn.net/",IDM_FILE_GOTO1
    MENUITEM "Go Back",IDM_FILE_BACK
    MENUITEM "Go Forward ",IDM_FILE_FORWARD
    MENUITEM "Exit",IDM_FILE_EXIT
  END
END


回复

使用道具 举报

沙发
发表于 2010-10-30 16:19:42 | 只看该作者
汗,,发源码不是更好吗?
回复 支持 反对

使用道具 举报

板凳
发表于 2010-11-1 01:59:08 | 只看该作者
不如我编的浏览器例子,我的可是多窗口的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表