消息反射机制可以使对消息的处理都集中在控件类中,以CEdit的EN_CHANGE消息为例: /*MyEdit.h*/ class CMyEdit:public CWindowImpl<CMyEdit, CEdit> { BEGIN_MSG_MAP(CMyEdit) REFLECTED_COMMAND_CODE_HANDLER(EN_CHANGE, OnTextChange) DEFAULT_REFLECTION_HANDLER() END_MSG_MAP() LRESULT OnTextCha…
转载请说明出处,谢谢~~ 原本的duilib是自带浏览器控件的,但是使用了IE内核,我在做仿酷狗音乐播放器时,在右侧乐库要用到浏览器控件,而我使用自带的IE控件却发现了不少缺点,这也是duilib一直没有解决的,编程群里的朋友也反映IE控件不好用.而目前最常用的浏览器内核一个是IE内核,另一个是webkit内核. 先简单介绍一下这个webkit内核             WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident…
终于封装完成了,采用离屏渲染方式,支持JS和C#互相调用,C#方法自动绑定到JS里,中文输入有自动调整输入法位置. 基于开源的CefGlue 移植,本来想用CefSharp,不过这个里面有很多C++的,而且很多代码还是基于Windows编写的,不好移植成跨平台的. 不过CefGlue 里的功能不够完善,没有带JS远程调用功能,Cef是多进程的,JS调用需要在渲染进程,那就需要主进程发送消息给渲染进程来调用JS,还要把调用结果发送回主进程,很麻烦.我这边是采用管道通讯. C#注册方法到JS里的时候…
深入理解MVC   MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性.可移植性,代码的可重用性. MVC即Model.View.Controller即模型.视图.控制器.我在和同行讨论技术,阅读别人的代码时发现,很多程序员倾向于将软件的业务逻辑放在Controller里,将数据库访问操作的代码放在Model里. 最终软件(网站)的代码结构是,View层是界面,Con…
最近一直把精力放在项目上面,导致忽略的一些底层的东西.以前就一直觉得原有的select控件很丑,正好周末有时间,试着做了一个简单封装,实现了它的基本功能.我总结了一下,大概分为三个部分: 1.对显示样式的处理 2.对点击和hover事件的处理 3.change事件发送请求的处理 我们先看jsp的展示代码: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&…
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773260.html 因为很多时候我们开发画图之类的工具时,鼠标移动之类的,都只想在绘图区域内响应,左上角就是绘图区域原点(0,0),右下角时长宽,这样非常方便坐标的计算,如果鼠标移动在整个winform界面都有响应那么有时候就会为开发带来困扰了. 那么如何单纯的只在OpenGLControl控件区域鼠标响应呢? 我觉得这点c#的界面开发就比MFC好太多了 在c#下,我们只需要将鼠标移动到…
在网上找了一下,发现这方面的资料并不多.做传统桌面的本来就不多了吧,更别说WPF了.我可能也要另寻出路了,不过我还是觉得做桌面挺有意思的. 言归正传  首先,新建一个WPF自定义控件库项目 这里我们封装一个支持自己绘制形状的图片按钮,且支持图片和文字. 运行效果如下:(形状是我随便绘的) 将默认的CustomControl1.cs改成ImageButton.cs 这个图片按钮的实现主要是用WPF的依赖属性来实现,有疑问的,可以先了解下依赖属性 https://docs.microsoft.com…
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" > function show() { var _value = document.getElementById("text_1").value…
unit Unit1; interface uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls; type  TForm1 = class(TForm)    Label1: TLabel;    Button1: TButton;    Edit1: TEdit;  private    { Private declarations }    procedure CM…
上一篇讲了控件创建,这篇说说控件消息.directui的中心思想是在真实窗口之上画出所有控件,那这些控件是如何获取各自消息的? 通过第一篇的示例可以看到窗口消息的传递过程: CWindowWnd::__WndProc CWindowWnd::HandleMessage(CFrameWindowWnd类覆盖此函数) CPaintManagerUI::MessageHandler 消息最终传递到CPaintManagerUI::MessageHandler中,以WM_LBUTTONDOWN消息为例,…